webForumDet fria alternativet

WIN 32 API Ruta

7 svar · 361 visningar · startad av Napoleon

NapoleonMedlem sedan nov. 200322 inlägg
#1

Jag har gjort ett första försök att göra en windows ruta genom att använda win 32 api:t. Mitt problem är att rutan bara blinkar fram och sen genast försvinner. Borde vara nåt fel med min (väldigt standard) msg handler eller med min message loop, eller?

Så här ser i alla fall dessa två ut:

Messageloop:

while (GetMessage(&msg, NULL, 0, 0)) 
	{   
		TranslateMessage(&msg);        
		DispatchMessage(&msg);   
	}

Message Handler:

LRESULT CALLBACK MsgHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
	return(DefWindowProc(hwnd, msg, wparam, lparam));
}

Tack på förhand!

nikoMedlem sedan juni 20022 599 inlägg
#2

Det verkar ju vara ganska "by the book" så det är svårt att se att fönstret skulle försvinna pga den koden.

Sätt en break-point tidigt i WinMain och steppa framåt så ser du antagligen att det smäller redan innan.

NapoleonMedlem sedan nov. 200322 inlägg
#3

Break-point?

Vad är en Break-point?

PeWMedlem sedan juni 200010 432 inlägg
#4

En breakpoint sätts där man vill att programmet ska stanna upp när man kör debug. Då får man tillfälle att t.ex kolla variablers värden, stacken m.m.. men ofta kan det ju räcka med att man placerar ut lite brytpunkter strategiskt för att se hur långt in i programmet felet uppstår. Kolla i hjälpen på ditt IDE så bör det framgå hur du ska göra i just den miljön.

Sang-draxMedlem sedan juli 2002581 inlägg
#5

Man måste hantera WM_CREATE, dvs returnera noll för att fönstret skall skapas.

nikoMedlem sedan juni 20022 599 inlägg
#6

Sang-drax:

Han hanterar redan WM_CREATE via DefWindowProc.

Sang-draxMedlem sedan juli 2002581 inlägg
#7

Ja, det stämmer. Efter en kontroll ser jag att DefWindowProc returnerar 0 för WM_CREATE.

I övrigt ser jag inget fel med koden. En titt på koden som skapar fönstret skulle kanske inte skada.

NapoleonMedlem sedan nov. 200322 inlägg
#8

Genom att använda debuggern så vet jag nu alldeles säkert att rutan skapas. Har inte lyckats så bra med debuggern annars än, får läsa på litet för att se hur den funkar bättre.

Det är mycket kod (med kommentarerna iaf som skapar detta enkla fönster, därför föredrar jag att utelämna den.

251 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
125 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)