Guybrush Threepwood Geschrieben 12. November 2002 Geschrieben 12. November 2002 Hi, ich ein Programm (ohne MFC) mit einem Hauptfenster, das mit CreateWindowEx und dem Flag WS_EX_CONTROLPARENT erstellt wurde. In dem Fenster sind zwei Buttons die mit CreateWindow und dem Flag WS_TABSTOP erstellt wurden, der erste Button besitzt noch das Flag WS_GROUP. Eigentlich sollte man jetzt mit Tab zwischen den Buttons wählen können, es passiert jedoch nichts wenn ich Tab drücke. Hat irgendwer eine Idee was ich falsch mache? Gruß Guybrush Zitieren
Guybrush Threepwood Geschrieben 27. Januar 2003 Autor Geschrieben 27. Januar 2003 Ich hab hier mal nen entsprechenden Code dazu: #include <windows.h> #include <urlmon.h> LRESULT CALLBACK MainProc(HWND,UINT,WPARAM,LPARAM); HWND hMainWindow, hButton1, hButton2; APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG Msg; WNDCLASS wc; memset(&wc,0,sizeof(WNDCLASS)); wc.hbrBackground = (HBRUSH) COLOR_WINDOWFRAME; wc.hCursor = LoadCursor(0,IDC_ARROW); wc.hInstance = hInstance; wc.lpfnWndProc = MainProc; wc.lpszClassName ="MainClass"; wc.style = CS_BYTEALIGNCLIENT; if (!RegisterClass(&wc)) return FALSE; hMainWindow = CreateWindowEx(WS_EX_CONTROLPARENT,"MainClass","Test", WS_OVERLAPPEDWINDOW, 200,200, 350,300, 0,0, hInstance,0); ShowWindow(hMainWindow,nCmdShow); UpdateWindow(hMainWindow); hButton1 = CreateWindow("BUTTON","Button1", WS_CHILD | WS_TABSTOP, 20,20, 60,30, hMainWindow,0, hInstance,0); ShowWindow(hButton1,nCmdShow); UpdateWindow(hButton1); hButton2 = CreateWindow("BUTTON","Button2", WS_CHILD | WS_TABSTOP, 100,20, 60,30, hMainWindow,0, hInstance,0); ShowWindow(hButton2,nCmdShow); UpdateWindow(hButton2); while(GetMessage(&Msg,0,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } LRESULT CALLBACK MainProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } default: return DefWindowProc(hWnd,Msg,wParam,lParam); } } [/PHP] Irgendwer von euch hat das doch bestimmt schon gemacht und kann mir sagen wo der Fehler ist. Gruß Guybrush Zitieren
Guybrush Threepwood Geschrieben 13. Februar 2003 Autor Geschrieben 13. Februar 2003 So hab das Problem endlich gelöst *freu* Man muß in die Nachrichtenschleife nur noch einen zusätzlichen Befehl einbauen: while(GetMessage(&Msg,0,0,0)) { if(IsDialogMessage(hMainWindow, &Msg) == FALSE) { TranslateMessage(&Msg); DispatchMessage(&Msg); } } [/PHP] Gruß Guybrush Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.