HWND aus Dialog bestimmen



  • Nun, alle HWNDs sind nicht static, werden einmal belegt und sofort wieder zerbröselt...

    Mach sie static und hol sie Dir mit GelDlgItem im WM_INITDIALOG...



  • Na okay so bekommen die HWND's sinnvolle Werte....

    allerdings klappts mit dem Eintrag in die Combobox immer noch net!



  • Parapiler schrieb:

    Die Rückgabetype prüfe ich ja auch.... CB_ADDSTRING gibt 0 zurück....

    Demnach müsste dann ja eigentlich alles gut gegangen sein:

    The return value is the zero-based index to the string in the list box of the combo box. If an error occurs, the return value is CB_ERR. If insufficient space is available to store the new string, it is CB_ERRSPACE.



  • hmmm aber ich sehe nix....



  • Hast du evtl. die Combo-Box zu klein erstellt? Wenn man im Ressourcen-Editor den Pfeil der Combo-Box anklickt kann man da noch die aufpopp-Größe einstellen - vielleicht hat es ja damit was zu tun 😕



  • hmmm also ich bezweifle es zwar aber es ist ja nen Versuch wert. Wo stelle ich das denn bei VS7 genau ein?! Ich finde das gerade net so ganz.

    Gruß Para



  • Bei VS6 Combobox anklicken, via Doppelklick auf den Dropdown-Pfeil der Combobox zeigt er entweder Normalgröße oder die aufgeklappte Größe an.



  • ja das weiss ich auch aber in VS7?!

    Naja aber 1 Eintrag müsste er ja auf jedenfall angeben können...



  • Du klickst einfach auf den kleinen Pfeil nach unten der ComboBox im Dialogeditor. Dann kannste die Größe nach unten ziehen...



  • hmmmm irgendwie geht das so net.....



  • @flenders
    für dieses leidge combobox grössen thema könntest du doch mal nen screenshot bzw ne howto wie man die grösse korrekt einstellt in die FAQ stellen.



  • Ich hab halt nur VS6 - dazu könnte ich das zwar mal machen, aber es gibt sicher einige, die andere IDEs verwenden 🙄



  • flenders schrieb:

    Ich hab halt nur VS6 - dazu könnte ich das zwar mal machen, aber es gibt sicher einige, die andere IDEs verwenden 🙄

    ich könnte es für den dev-cpp machen, allerdings gibts es das ja keinen editor sondern nur die rc und in dieser muss man halt nur ne sinnvolle höhe eintragen.

    COMBOBOX ID,15,30,55,[b]250[/b], WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST | CBS_HASSTRINGS| CBS_SORT
    


  • Wenn ich es herausgefunden habe, wie ich das in .NET , also Visual C++ 7 mache,dann kann ich auch einen Screenshot für VS.NET beisteuern. Allerdings habe ich im Moment noch nix gefunden.

    Und, um auf das eigentliche Thema zurückzukommen, ich bezweifle auch, dass das was mit der Höhe zu tun hat, denn in der Combobox befindet sich @dato noch kein Einziger Eintrag, doch müsste ja wenigstens der erste angezeigt werden oder?!



  • Parapiler schrieb:

    Und, um auf das eigentliche Thema zurückzukommen, ich bezweifle auch, dass das was mit der Höhe zu tun hat, denn in der Combobox befindet sich @dato noch kein Einziger Eintrag, doch müsste ja wenigstens der erste angezeigt werden oder?!

    es liegt mit grosser sicherheit an der höhe. vorausgesetzt deine handle stimmen (hast du ja schon gesagt das sie ok sind) ändere mal die *.rc mit einem texteditor ab und schreibe ein andere höhe rein.



  • hmmmm wenn ihr meint.....
    dann muss ich das jetzt nur hinkriegen....
    Kann es sein das das bei VS.net in der Standartedition mit den Dialogeditor gar nicht geht?!

    Gruß Para



  • Also das HWND ist richtig, weil folgendes funktioniert:

    ShowWindow (hAdapter /*hwnd des combos*/, SW_HIDE);
    


  • Aber ihr habt recht... es liegt an der Größe....

    Habe mit MoveWindow das Fenster mal vergrößert.... nur das ich noch nicht so wirklich die richtigen Koordinaten bekomme aber das kriege ich schon hin... danke!



  • und mit dem res editor bekommst du es nicht hin 😕



  • hmmm wie bekomme ich denn die Koordinaten für die CB ?!

    Folgendes setzt die CB irgendwo ganz falsch hin:

    hFull            = GetDlgItem (hDlg, IDC_FULLSCR);
    			hWnd             = GetDlgItem (hDlg, IDC_WINDOWED);
    			hAdapter         = GetDlgItem (hDlg, IDC_ADAPTER);	
    			hDevice          = GetDlgItem (hDlg, IDC_DEVICE);
    			hMode            = GetDlgItem (hDlg, IDC_GMODES);	 
    			hAdapterFormat   = GetDlgItem (hDlg, IDC_ADAP_FORMAT);	
    			hbbufferFormat   = GetDlgItem (hDlg, IDC_BBUFFER_FORMAT);
    
    			//ShowWindow (hAdapter, SW_HIDE);
    			bla = SendMessage(hAdapter,CB_ADDSTRING, (WPARAM)0, (LPARAM)"no graphic card arivable");
    			result = GetWindowRect (hAdapter, &rc);
    			width = rc.left-rc.right;
    			height = rc.bottom - rc.top;
    			res = MoveWindow (hAdapter, rc.right, rc.top, width, 4 * height, true);  
    			ShowWindow (hAdapter, SW_SHOW);
    			UpdateWindow (hAdapter);
    

Anmelden zum Antworten