Multidesk.be » Forums » C en C++ » Window word niet weer gegeven

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door leoharry op dinsdag 29 januari 2008 om 21:21:12.
leoharry heeft nog geen avatar toegevoegd
Multiviteit: 142
Hallo,
ik ben net begonnen met het programeren van een winapi.
en nou ben ik al meteen tegen een probleem aangelopen.
ik heb een hele rij code ingevoerd gevonden in een tutorial.
maar nou start het programma (zie het staan in taakbeheer)
maar hij geeft geen scherm weer. kan iemand me misschien helpen?

ps ik draai windows vista zou dat het probleem kunnen zijn.

de code:
CODE
  1. //#define WIN32_LEAN_AND_MEAN
  2.  
  3. #include <windows.h>
  4.  
  5. //win proc, verwerking van system messages
  6.  
  7. LRESULT CALLBACK WndProc(HWND hwnd,
  8.                                                  UINT message,
  9.                                                  WPARAM wParam,
  10.                                                  LPARAM lParam)
  11. {
  12.         HDC     hdc; //Device context
  13.         PAINTSTRUCT ps; // paint structure
  14.         RECT rect; //Rectangle structure
  15.  
  16.         switch(message)
  17.         {
  18.         case WM_CREATE: //wordt ontvangen waneer window word gemaakt
  19.                 break;
  20.         case WM_PAINT:
  21.                 hdc = BeginPaint (hwnd, &ps);
  22.                
  23.                 GetClientRect (hwnd, &rect);
  24.  
  25.                 DrawText (hdc, TEXT ("HELLO WORLD"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
  26.  
  27.                 EndPaint (hwnd, &ps);
  28.                 break;
  29.         case WM_CLOSE:
  30.                 PostQuitMessage(0);
  31.                 break;
  32.  
  33.         }
  34.         //niet verwerkte messages worden verwerkt door default win proc
  35.         return DefWindowProc(hwnd,message,wParam,lParam);
  36. }
  37.  
  38. //main func
  39. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  40. {
  41.         WNDCLASSEX wc; //window class
  42.         HWND hwnd; //window handel
  43.         MSG msg; //message
  44.         bool done = false; //controle om te zien of klaar is
  45.  
  46.         //window class
  47.         wc.cbSize = sizeof(WNDCLASSEX);
  48.         wc.style = CS_HREDRAW | CS_VREDRAW;
  49.         wc.lpfnWndProc = WndProc;
  50.         wc.cbClsExtra = 0;
  51.         wc.cbWndExtra = 0;
  52.         wc.hInstance = hInstance;
  53.         wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  54.         wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  55.         wc.lpszMenuName = NULL;
  56.         wc.lpszClassName = "window";
  57.         wc.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
  58.  
  59.         RegisterClassEx(&wc); //registratie van window class
  60.  
  61.         //createwindowex functie
  62.  
  63.         hwnd = CreateWindowEx(NULL,
  64.                                                         "window",
  65.                                                         "Mijn Window",
  66.                                                         WS_OVERLAPPEDWINDOW |
  67.                                                         WS_VISIBLE |
  68.                                                         WS_SYSMENU,
  69.                                                         100, 100,
  70.                                                         400, 400,
  71.                                                         NULL,
  72.                                                         NULL,
  73.                                                         hInstance,
  74.                                                         NULL);
  75.  
  76.         while(!done) //loop zolang done is false
  77.         {
  78.                 PeekMessage(&msg, NULL, 0, 0,PM_REMOVE); //controleer of er messages zijn
  79.  
  80.                 if(msg.message == WM_QUIT) //bij een quit message, maak done true
  81.                 {
  82.                         done=true;
  83.                 }else{
  84.                         TranslateMessage(&msg); //verwerk messages
  85.                         DispatchMessage(&msg); //verstuur messages
  86.                 }
  87.         }
  88.         return (msg.wParam);
  89. }
^ Reactie #1 geschreven door NightCreature op woensdag 13 februari 2008 om 19:35:33.
NightCreature's avatar
Multiviteit: 1196
MSc.
CODE
  1.  
  2. ShowWindow(hWnd,SW_SHOWDEFAULT);
  3. UpdateWindow(hWnd);
  4.  

voeg deze twee regels toe na dat je het window hebt gemaakt, in win32 moet je windows laten weten dat je een window wil zien. Je als je Visual Studio gebruikt kun je ook gewoon een win32 UI project beginnen. Dit project zorgt voor een window voor je.
Deze tekst werd het laatst bewerkt voor 18.61 % door NightCreature op woensdag 13 februari 2008 om 19:36:15.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen