HWND aus Dialog bestimmen
-
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);
-
nein mit dem Ressourceneditor klappt das bei mir nicht... habe aber auch nur die Standartversion vielleicht geht das ja da erst ab der Enterprise ?!?!
Keine Ahnung....
Gruß Para
-
so geht's

Parapiler schrieb:
width = rc.right - rc.left; height = rc.bottom - rc.top; res = MoveWindow (hAdapter, rc.left, rc.top, width, 4 * height, true);Parapiler schrieb:
nein mit dem Ressourceneditor klappt das bei mir nicht... habe aber auch nur die Standartversion vielleicht geht das ja da erst ab der Enterprise ?!?!
kann ich mir kaum vorstellen, aber na gut
-
Naja das habe ich ebend mal auf verzweiflung ausprobiert:
Resultat: width ist dann negativ => logisch gesehen müsste es ja so richtig sein, weil ja left die höhere koordinate ist.... naja shit happens...
-
HWND comboboxWnd; // Deine Combobox RECT rt; // Breite und Höhe des Combobox-Fensters holen: GetClientRect(comboboxWnd,&rt); // Höhe des Combobox-Fensters auf 200 Pixeln setzen // ohne das Fenster zu verschieben oder die z-order zu ändern: SetWindowPos(comboboxWnd,NULL,0,0,rt.right,200,SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOZORDER);Liefert GetWindowRect() nicht Screen-Koordinaten ? - Also Koordinaten die relativ zum oberen linken Ecke des Desktops sind und nicht zum Parent-Fenster ?
-
Okay,
danke so klappt es jetzt.
Gruß Para