ComboBox und die Entertaste?
-
Hi! Eigentlich simpel:
ich möchte eine MessageBox erscheinen lassen, wenn man in der ComboBox Enter drückt!
Ich habe der ComboBox eine Prozedur zugewiesen:
WNDPROC BROWSER_ADDR_CB; // ... BROWSER_ADDR_CB = (WNDPROC)(long)SetWindowLong(GetDlgItem(hBrowser, IDC_ADDRESS), GWL_WNDPROC, (long)BROWSERADDR); // ... LRESULT CALLBACK BROWSERADDR(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_KEYDOWN: { switch(wParam) { case VK_RETURN: { MessageBox(hWnd, "ENTER", NULL, MB_OK); break; } break; } break; } case WM_GETDLGCODE: { return (DLGC_WANTALLKEYS); } break; } return CallWindowProc(BROWSER_ADDR_CB, hWnd, message, wParam, lParam); }
Nachdem es nicht funktionierte, habe ich das WM_GETDLGCODE hinzugefügt! Es geht immer noch nicht! Wie bekomme ich das hin??? Bitte helft. Gruß vom Chris.
-
die combobox besteht aus mehreren einzelnen controls. du musst die wndproc des edits ändern.
-
Klingt sehr, sehr logisch!
Kannst du mir verraten, wie ich die Prozedur nicht auf das ComboBox Control, sondern auf das Edit Control der ComboBox Control verweise??Das wäre sehr hilfreich!
Chris
-
hier was ganz übles:
POINT pt; pt.x = pt.y = 3; HWND Edit = ChildWindowFromPoint(ComboBox, pt);
weiß nicht ob es da ne bessere lösung gibt, um an das edit steuerelement zu kommen.
-
ich hatte es ja gerade so versucht:
COMBOBOXINFO comboboxinfo; GetComboBoxInfo(GetDlgItem(hBrowser, IDC_ADDRESS), &comboboxinfo); BROWSER_ADDR_CB = (WNDPROC)(long)SetWindowLong(comboboxinfo.hwndItem, GWL_WNDPROC, (long)BROWSERADDR);
komischer weise ohne erfolg!
aber dein beispiel funktioniert auch!! und ist halt der alternative weg, aber wenn funktioniert, gut! *gDANKE 1000 MAL!
-
STOP!
Ich hoffe du schaust hier nochmal rein. Deine Lösung ist viel viel besser.
Es funktioniert bei dir nicht, weil du cbSize nicht setzt.
comboboxinfo.cbSize = sizeof(COMBOBOXINFO);
-
JUP! Ich schau nochmal rein! Und tatsächlich, es funktioniert. Wieso komme ich auf so Dinge nie selbst
Das ist die elegantere Lösung nun!!! 2000 MAL THX!! ;))
Kewl,
Gruß,
Chris