kickerxy123
Erfahrenes Mitglied
Hallo, ich habe ein vermutlich recht triviales Problem.
Also, ich benutze Dev-C++, win XP 32bit, Mingw.
Mein Problem liegt in der Auswertung von Key-Events. Ein einfaches Keyevent, wie WM_CHAR oder WM_KEYDOWN ist klar, z.B.
funktioniert einwandfrei, die Textbox hFortschritt gibt an: "Tab".
Allerdings: wenn ich jetzt z.B. in das erste editFeld klicke/schreibe (also das Fenster aktiviere/in den Vordergrund setze), und dann auf Tab(0x09) drücke, passiert gar nichts mehr, da ja der MessageHandler nur auf aktionen im mainwindow reagiert, so weit richtig?
Wenn ja, wie schreib ich ein Messagehandler für untergeordnete Fenster(eben z.B. hEdit). Vielleicht noch zum Deklarieren des EditFeldes:
und der Messagehanlder hat folgende Struktur:
Ich hoffe ihr könnt mir helfen,
lg
kickerxy
Also, ich benutze Dev-C++, win XP 32bit, Mingw.
Mein Problem liegt in der Auswertung von Key-Events. Ein einfaches Keyevent, wie WM_CHAR oder WM_KEYDOWN ist klar, z.B.
Code:
switch (message)
{
case WM_CHAR: {
switch (wParam)
{ case 0x09:
SendMessage(hFortschritt, WM_SETTEXT, 0, (LPARAM)"Tab");
UpdateWindow(hwnd);
UpdateWindow(hFortschritt);
Allerdings: wenn ich jetzt z.B. in das erste editFeld klicke/schreibe (also das Fenster aktiviere/in den Vordergrund setze), und dann auf Tab(0x09) drücke, passiert gar nichts mehr, da ja der MessageHandler nur auf aktionen im mainwindow reagiert, so weit richtig?
Wenn ja, wie schreib ich ein Messagehandler für untergeordnete Fenster(eben z.B. hEdit). Vielleicht noch zum Deklarieren des EditFeldes:
Code:
hEdit2 = CreateWindowEx(WS_EX_CLIENTEDGE,
"edit",
edit2, // <- das ist der Inhalt des Editfelds
WS_CHILD | WS_VISIBLE //|// WS_VSCROLL |//ES_MULTILINE |
//ES_AUTOVSCROLL,
,
120, 50, 150, 25,
hwnd,
NULL,
((LPCREATESTRUCT) lParam) -> hInstance,
NULL);
free(edit2);
SendMessage(hEdit2, WM_SETTEXT, 0, (LPARAM)port_str.c_str());
Code:
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CHAR: {
switch (wParam)
{
lg
kickerxy