dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Window Procedure

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
Angel



Joined: 02 Jan 2005
Posts: 113
Location: Latvija

PostPosted: 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. Rolling Eyes
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
View user's profile Send e-mail
anggelus



Joined: 23 Feb 2005
Posts: 383
Location: Rīga (LV)

PostPosted: Fri Apr 01, 2005 5:03 pm    Post subject:

Izmanto to, kas straadaa un miers Smile
_________________
No comprendo lo que dice.
Back to top
View user's profile Send e-mail
Angel



Joined: 02 Jan 2005
Posts: 113
Location: Latvija

PostPosted: 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
View user's profile Send e-mail
Digital-X



Joined: 11 Jan 2004
Posts: 79

PostPosted: 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
View user's profile
chaosman



Joined: 28 Oct 2003
Posts: 64
Location: Rīga

PostPosted: 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
View user's profile
anggelus



Joined: 23 Feb 2005
Posts: 383
Location: Rīga (LV)

PostPosted: 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 Smile
_________________
No comprendo lo que dice.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
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