Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

  • 2 Monate später...
Geschrieben

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

  • 3 Wochen später...
Geschrieben

So hab das Problem endlich gelöst *freu* :D

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...