[c++]winapi

chudy1993

Użytkownik
Dołączył
Luty 24, 2007
Posty
174
Kod:
#include <windows.h>



HWND g_hPrzycisk;

LPSTR NazwaKlasy = "Klasa Okienka";

MSG Komunikat;



LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{



//WYPEŁNIANIE STRUKTURY

 WNDCLASSEX wc;



 wc.cbSize = sizeof(WNDCLASSEX);

 wc.style = 0;

 wc.lpfnWndProc = WndProc;

 wc.cbClsExtra = 0;

 wc.cbWndExtra = 0;

 wc.hInstance = hInstance;

 wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

 wc.hCursor = LoadCursor(NULL, IDC_ARROW);

 wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

 wc.lpszMenuName = NULL;

 wc.lpszClassName = NazwaKlasy;

 wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);



//REJESTROWANIE KLASY OKNA

 if(!RegisterClassEx(&wc))

 {

  MessageBox(NULL, "Wysoka Komisja odmawia rejestracji tego okna!", "Niestety...", MB_ICONEXCLAMATION | MB_OK);

   return 1;

 }



//TWORZENIE OKNA

 HWND hwnd;



 hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, NazwaKlasy, "Oto okienko", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL);



 if(hwnd==NULL)

 {

  MessageBox(NULL, "Okno odmówiło przyjścia na świat!", "Ale kicha...", MB_ICONEXCLAMATION);

  return 1;

 }



 ShowWindow(hwnd, nCmdShow); //Pokaż okienko...

 UpdateWindow(hwnd);



//Pętla komunikatów

 while(GetMessage(&Komunikat, NULL, 0, 0))

 {

  TranslateMessage(&Komunikat);

  DispatchMessage(&Komunikat);

 }

 return Komunikat.wParam;

}



//OBSŁUGA ZDARZEŃ

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);

  }

  g_hPrzycisk = CreateWindowEx(0, "BUTTON", "Nasz przycisk", WS_CHILD | WS_VISIBLE, 100, 100, 150, 30, hwnd, NULL, hInstance, NULL);

 return 0;

}

Ten kod mi nie działa, Dev-C++ wywala takie coś:

Prosiłbym o pomoc w rozwiązaniu mojego problemu.
Z góry dziękuję.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
widze kurs z dark cult of c++
<


Przycisku nie tworz w petli komunikatow bo tam nie masz zdefiniowanej hInstance zdefiniuj np. przed wywołaniem ShowWindow();
 
3

31337

Gość
skoro nie rozumiesz co znaczy `undeclared` to po co bierzesz sie za takie skrypty.
 
Do góry Bottom