wojtek1150 Temat założony przez niniejszego użytkownika |
[WinApi] Okna Dialogowe » 2011-04-07 15:52:56 Witam wszystkich. Po zapoznaniu się z kursem podstawowym i dodatkowym c++ postanowiłem przejść do WinApi. Jednak stanąłem na oknach dialogowych, a konkretnie na ich kompilacji. Otóż zrobiłem sobie dialog.h z treścią: #define IDD_MOJDIALOG 200 #define IDC_LABEL 201 Jednak żaden programik nie kompiluje mi się: ||=== projekt3, Debug ===| C:\Users\Wojtek\CPP\WInAPI\projekt3\main.cpp||In function 'int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':| C:\Users\Wojtek\CPP\WInAPI\projekt3\main.cpp|20|error: 'hwnd' was not declared in this scope| C:\Users\Wojtek\CPP\WInAPI\projekt3\main.cpp|28|error: 'msg' was not declared in this scope| C:\Users\Wojtek\CPP\WInAPI\projekt3\main.cpp|34|error: 'msg' was not declared in this scope| C:\Users\Wojtek\CPP\WInAPI\projekt3\main.cpp|20|warning: unused variable 'hPrzyc'| ||=== Build finished: 3 errors, 1 warnings ===|
Sprawdzałem nawet ten co jest w 1 części kursu z oknami: #include <windows.h> #include "dialog.h"
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); BOOL CALLBACK DlgProc( HWND, UINT, WPARAM, LPARAM );
int WINAPI WinMain( HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil ) { HWND hPrzyc = CreateWindowEx( 0, "BUTTON", "Dialog", WS_CHILD | WS_VISIBLE, 5, 5, 50, 25, hwnd, NULL, hThisInstance, NULL ); ShowWindow( hwnd, nFunsterStil ); while( GetMessage( & msg, NULL, 0, 0 ) ) { TranslateMessage( & msg ); DispatchMessage( & msg ); } return msg.wParam; }
LRESULT CALLBACK WndProc( HWND hwnd, UINT mesg, WPARAM wParam, LPARAM lParam ) { switch( mesg ) { case WM_COMMAND: { int ret = DialogBox( GetModuleHandle( NULL ), MAKEINTRESOURCE( 200 ), hwnd, DlgProc ); if( ret == IDOK ) MessageBox( hwnd, "Wybrałeś \'Fajnie\' w oknie dialogowym!", "Test", MB_ICONINFORMATION ); else if( ret == IDCANCEL ) MessageBox( hwnd, "Wybrałeś \'Anuluj\' w oknie dialogowym!", "Test", MB_ICONINFORMATION ); } break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, mesg, wParam, lParam ); } return 0; }
BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam ) { switch( Msg ) { case WM_COMMAND: { switch( LOWORD( wParam ) ) { case IDOK: EndDialog( hwnd, IDOK ); break; case IDCANCEL: EndDialog( hwnd, IDCANCEL ); break; } } break; default: return FALSE; } return TRUE; } Jakieś sugestie? Sprawdzałem w kilku środowiskach: dev4 i 5, code block, visual2008, qt creator, ale nic... Pozdrawiam |