aspoka Temat założony przez niniejszego użytkownika |
Problem z Obiektami Kontrolnymi. » 2013-07-28 12:01:52 To moja pierwsza wiadomość na blogu, więc witam wszystkich :}. Mam problem z obiektami kontrolnymi w Dev-C++. Problem polega na tym, że piszę program i wszystko się dobrze kompiluje, ale gdy włączam program to ramka, przycisk,pole wyboru, pole opcji i pole tekstowe nie wyświetla się. Tutaj podaje kod źródłowy: #include <windows.h>
LPSTR NazwaKlasy = "Klasa Okna"; MSG Komunikat;
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{ WNDCLASSEX ko; ko.cbSize = sizeof( WNDCLASSEX ); ko.style = 0; ko.lpfnWndProc = WndProc; ko.cbClsExtra = 0; ko.cbWndExtra = 0; ko.hInstance = hInstance; ko.hIcon = LoadIcon( NULL, IDI_APPLICATION ); ko.hCursor = LoadCursor( NULL, IDC_ARROW ); ko.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); ko.lpszMenuName = NULL; ko.lpszClassName = NazwaKlasy; ko.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); if( !RegisterClassEx( & ko ) ) return 0; HWND hwnd; hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Moje okno", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 300, NULL, NULL, hInstance, NULL ); ShowWindow( hwnd, nCmdShow ); UpdateWindow( hwnd ); while( GetMessage( & Komunikat, NULL, 0, 0 ) ) { TranslateMessage( & Komunikat ); DispatchMessage( & Komunikat ); } return Komunikat.wParam; HWND Ramka; Ramka = CreateWindowEx( 0, "BUTTON", "Ramka", WS_CHILD | WS_VISIBLE | BS_GROUPBOX | WS_BORDER, 480, 280, 10, 10, hwnd, NULL, hInstance, NULL ); } LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{ switch( msg ) { case WM_CLOSE: DestroyWindow( hwnd ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, msg, wParam, lParam ); } return 0; } Proszę o pomoc w korekcie tego programu. Z góry dziękuje ^.^ |
|
Admixior |
» 2013-07-29 00:13:39 Widzę że jesteś początkujący w c++ (i w ogóle). 1. To forum nie blog :) 2. wszystko się dobrze kompiluje |
Jeżeli będziesz dalej pisać to szybko się zorientujesz że jak coś się skompiluje to dopiero zacznie się poprawianie błędów. 3. Jeśli nie wiesz to wiedz: program wykonuje się z góry na dół bez względu na wszystko. Nie obchodzi go czy jest to dobre. 4. Jeśli nie wiesz co znaczy "return cośtam" to wiedz że to wyjście z funkcji 5. Jeśli wychodzisz z funkcji "main" lub "WinMain" to wiedz że wtedy się program zakończy 6. Patrząc na powyższe dwa pkt. możesz wywnioskować że : ShowWindow( hwnd, nCmdShow ); UpdateWindow( hwnd );
while( GetMessage( & Komunikat, NULL, 0, 0 ) ) { TranslateMessage( & Komunikat ); DispatchMessage( & Komunikat ); }
return Komunikat.wParam;
HWND Ramka;
Ramka = CreateWindowEx( 0, "BUTTON", "Ramka", WS_CHILD | WS_VISIBLE | BS_GROUPBOX | WS_BORDER, 480, 280, 10, 10, hwnd, NULL, hInstance, NULL );
7. Skoro jest pkt. 3 to mam nadzieję że będziesz wiedział/a gdzie umieścić to coś co jest źle umieszczone |
|
aspoka Temat założony przez niniejszego użytkownika |
» 2013-07-29 17:11:12 Ok. poradziłem sobie. dzięki za pomoc. Temat zamknięty.
|
|
« 1 » |