|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
Angel
Joined: 02 Jan 2005 Posts: 113 Location: Latvija
|
Posted: Fri Apr 01, 2005 4:36 pm Post subject: Window Procedure |
|
Ieprieksh atvainojos par garu pustu, bet man jau saap galva no kluudas mekleeshanas...
Taa, kas par probleemu? Probleema ir taada, ka savu window procedure(kuras deelj neveras ciet device context un HWND) apmainot ar gandriiz taadu pashu no http://www.gametutorials.com/ wiss iet kaa smeereets.
Te buus mana: Code: | LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch(uMsg){
case WM_ACTIVATE:
if(!HIWORD(lParam))
active = true;
else
active = false;
break;
case WM_SYSCOMMAND:
switch(wParam){
case SC_SCREENSAVE:
case SC_MONITORPOWER:
return 0;
}
break;
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_KEYDOWN:
keys[wParam] = true;
break;
case WM_KEYUP:
keys[wParam] = false;
break;
case WM_SIZE:
// LOWORD = width, HIWORD = height
ResizeScene(LOWORD(lParam),HIWORD(lParam));
break;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
} |
un te buus taa, kas straadaa Code: | LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
UINT uMsg, // Message For This Window
WPARAM wParam, // Additional Message Information
LPARAM lParam) // Additional Message Information
{
switch (uMsg) // Check For Windows Messages
{
case WM_ACTIVATE: // Watch For Window Activate Message
{
if (!HIWORD(wParam)) // Check Minimization State
{
active=TRUE; // Program Is Active
}
else
{
active=FALSE; // Program Is No Longer Active
}
return 0; // Return To The Message Loop
}
case WM_SYSCOMMAND: // Intercept System Commands
{
switch (wParam) // Check System Calls
{
case SC_SCREENSAVE: // Screensaver Trying To Start?
case SC_MONITORPOWER: // Monitor Trying To Enter Powersave?
return 0; // Prevent From Happening
}
break; // Exit
}
case WM_CLOSE: // Did We Receive A Close Message?
{
PostQuitMessage(0); // Send A Quit Message
return 0; // Jump Back
}
case WM_KEYDOWN: // Is A Key Being Held Down?
{
keys[wParam] = TRUE; // If So, Mark It As TRUE
return 0; // Jump Back
}
case WM_KEYUP: // Has A Key Been Released?
{
keys[wParam] = FALSE; // If So, Mark It As FALSE
return 0; // Jump Back
}
case WM_SIZE: // Resize The OpenGL Window
{
ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // LoWord=Width, HiWord=Height
return 0; // Jump Back
}
}
// Pass All Unhandled Messages To DefWindowProc
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
|
meeginaaju visus break aizstaat ar return 0 bet tad vairs shii proceduura vsp nestraadaa. |
|
Back to top |
|
|
anggelus
Joined: 23 Feb 2005 Posts: 383 Location: Rīga (LV)
|
Posted: Fri Apr 01, 2005 5:03 pm Post subject: |
|
Izmanto to, kas straadaa un miers _________________ No comprendo lo que dice. |
|
Back to top |
|
|
Angel
Joined: 02 Jan 2005 Posts: 113 Location: Latvija
|
Posted: Fri Apr 01, 2005 5:08 pm Post subject: |
|
Nubet man buutu veeleeshanaas uzzinaat kaapeec nestraadaa, cereeju, ka te kaads zinaas....
Last edited by Angel on Fri Apr 01, 2005 7:38 pm; edited 1 time in total |
|
Back to top |
|
|
Digital-X
Joined: 11 Jan 2004 Posts: 79
|
Posted: Fri Apr 01, 2005 5:42 pm Post subject: |
|
Nomaini
Code: | PostQuitMessage(0); // Send A Quit Message
break; // Jump Back
|
Pret
Code: | PostQuitMessage(0); // Send A Quit Message
return 0;
|
vajadzeetu paliidzeet _________________ Security: http://www.netsec.lv/forums/
Last edited by Digital-X on Fri Apr 01, 2005 6:23 pm; edited 1 time in total |
|
Back to top |
|
|
chaosman
Joined: 28 Oct 2003 Posts: 64 Location: Rīga
|
Posted: Fri Apr 01, 2005 5:48 pm Post subject: |
|
Droshi vien taapeec ka pimajaa gadiijumaa DefWindowProc tiek izsaukta visos gadiijumos. Varbuut laabak to likt pie "default:" label switchaa.
BTW silts ieteikums no manas puses (kuru protams var atljauties ignoreet) - nesaakt maaciities speelju programmeeshanu no WinAPI - peec personiigaas pieredzes. Ir daudz vienkaarshaakas un elegantaakas lietas. Tas, ka tu lieto OpenGL, nav noteicoshais - var izmantot kaadu no daudzajiem "wrapperiem" ap WinAPI (piem. GLUT, SDL - ceru ka sheit nekljuudos). |
|
Back to top |
|
|
anggelus
Joined: 23 Feb 2005 Posts: 383 Location: Rīga (LV)
|
Posted: Fri Apr 01, 2005 6:17 pm Post subject: |
|
Ciks sapratu tev logs neverās ciet?
Ja tā, tad pēc PostQuitMessage(0); pieliec return 0;
Ja tu to neizdari, tad tiek izsaukta default message procedūra, kas ignorē tavus uzstādījumus zem WM_CLOSE;
Laikam to pašu arī bija domājis Digital-X _________________ No comprendo lo que dice. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|