WinAppi - tworzenie okna.
Ostatnio zmodyfikowano 2014-11-09 21:28
yerpy Temat założony przez niniejszego użytkownika |
WinAppi - tworzenie okna. » 2014-11-09 17:51:05 #include <Windows.h>
HWND ghMainWnd = 0;
bool InitWindowsApp( HINSTANCE instanceHandle, int show );
int Run();
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nShowCmd ) { if( !InitWindowsApp( hInstance, nShowCmd ) ) return 0; return Run(); }
bool InitWindowsApp( HINSTANCE instanceHandle, int show ) { WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = instanceHandle; wc.hIcon = LoadIcon( 0, IDI_APPLICATION ); wc.hCursor = LoadCursor( 0, IDC_ARROW ); wc.hbrBackground =( HBRUSH ) GetStockObject( WHITE_BRUSH ); wc.lpszMenuName = 0; wc.lpszClassName = L"BassicWndClass"; if( !RegisterClass( & wc ) ) { MessageBox( 0, L"RegisterClass FAILED", 0, 0 ); return false; } ghMainWnd = CreateWindow( L"BasicWndClass", L"Win32Basic", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, instanceHandle, 0 ); if( ghMainWnd == 0 ) { MessageBox( 0, L"CreateWindow FAILED", 0, 0 ); return false; } ShowWindow( ghMainWnd, show ); UpdateWindow( ghMainWnd ); return true; }
int Run() { MSG msg = { 0 }; BOOL bRet = 1; while(( bRet = GetMessage( & msg, 0, 0, 0 ) ) != 0 ) { if( bRet == - 1 ) { MessageBox( 0, L"GetMessage FAILED", L"Error", MB_OK ); break; } else { TranslateMessage( & msg ); DispatchMessage( & msg ); } } return( int ) msg.wParam; } LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_LBUTTONDOWN: MessageBox( 0, L"Hello, World", L"Hello", MB_OK ); return 0; case WM_KEYDOWN: if( wParam == VK_ESCAPE ) DestroyWindow( ghMainWnd ); return 0; case WM_DESTROY: PostQuitMessage( 0 ); return 0; } return DefWindowProc( hWnd, msg, wParam, lParam ); }
Dlaczego ghMainWnd osiąga wartość 0 i po skompilowaniu wyskakuje mi message "CreateWindow FAILED" ? |
|
Monika90 |
» 2014-11-09 19:27:37
wc.lpszClassName = L"BassicWndClass";
ghMainWnd = CreateWindow( L"BasicWndClass",
|
Dwie różne nazwy klasy |
|
yerpy Temat założony przez niniejszego użytkownika |
» 2014-11-09 21:28:37 Dziękuję ! :) |
|
« 1 » |