2011-06-20 31 views
3

ウィンドウを作成するための小さなプログラムを作成しました。私は前にこのプログラムを作っていましたが、今私は自分のためにすべてのものを想起しようとしています。 プログラムの作成が終わったら、ウィンドウは表示されません。また、私が学習している本と自分のコードを比較すると同じです。私は何が間違っている/間違っていますか?ウィンドウが表示されない

#include <windows.h> 
#include <WindowsX.h> 


LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); 


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) 
{ 
    HWND hWnd; 

    // information for the window class 
    WNDCLASSEX wc; 
    ZeroMemory(&wc, sizeof(WNDCLASSEX)); 


    wc.cbSize = sizeof(WNDCLASSEX); 
    wc.style = CS_HREDRAW | CS_VREDRAW; 
    wc.lpfnWndProc = WindowProc; 
    wc.hInstance = hInstance; 
    wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW; 
    wc.lpszClassName = "WindowClass1"; 

    RegisterClassEx(&wc); 

    // Create Window 
    hWnd = CreateWindowEx(NULL, 
          "WindowClass", 
          "My Program", 
          WS_OVERLAPPEDWINDOW, 
          100, 
          100, 
          600, 
          480, 
          NULL, 
          NULL, 
          hInstance, 
          NULL); 


    ShowWindow(hWnd, SW_SHOWDEFAULT); 



    MSG msg; 

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


LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    switch(message) 
    { 
     case WM_DESTROY: 
     { 
      PostQuitMessage(0); 
      return 0; 
     } break; 
    } 
    return DefWindowProc(hWnd, message, wParam, lParam); 
} 
+0

ちょうどあなたがそれを実行したときに起こるんでしょうか? –

答えて

3

は、クラス名の比較:

wc.lpszClassName = "WindowClass1を"。

のhWnd =のCreateWindowEx(NULL、 "WindowClass"、...

このようなエラーを見つけるための最善の方法は、すべてのAPIの戻りコードをチェックすることです。

+0

Aaahh。助けてくれてありがとう! –

+0

#define MY_CLASS_NAME _T( "WindowClass1")? – Ajay

+1

@Ajay:OPはC++を使用しているので、 'const char * className =" WindowClass1 ";が適切です。 –

関連する問題