728x90
300x250
[MFC] 윈도우 프로그래밍 기초 - 윈도우 클래스 만들기

 

WinMain 함수에서 첫 번째 단계가 윈도우 클래스를 만드는 과정입니다.

~RegisterClass( & ...... ) 까지 만드는 과정을 윈도우 클래스를 구현한다고 보시면 됩니다.

 

Winuser.h 파일에 윈도우 클래스 생성을 위한 구조체 구조를 소개하겠습니다.

 


1. WNDCLASS 구조체

 

typedef struct tag WNDCLASS{
     UINT style;

     WNDPROC lpfnWndProc;

     int cbClsExtra;

     int cbWndExtra;

     HINSTANCE hInstance;

     HICON hIcon;

     HCURSOR hCursor;

     HBRUSH hbrBackground;

     LPCSTR lpszMenuName;

     LPCSTR lpszClassName;

 winuser.h의 구조체

 

* 클래스를 생성하는 원리만 이해하면 되므로, 현재의 코드는 암기하시거나 할 필요는 없습니다.

 


2. 구현(Implements)

 

 

 #include <Windows.h>
 #include <tchar.h>

 

 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 

 LPTSTR lpszClass = _T("TestApp");

 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParameter, int nCmdShow){

 

      HWND hWnd;
      MSG Message;

      WNDCLASS WndClass;

      WndClass.cbClsExtra = 0;
      WndClass.cbWndExtra = 0;
      WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
      WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
      WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
      WndClass.hInstance = hInstance;
      WndClass.lpfnWndProc = (WNDPROC)WndProc;
      WndClass.lpszClassName = lpszClass;
      WndClass.lpszMenuName = NULL;
      WndClass.style = CS_HREDRAW | CS_VREDRAW;

      RegisterClass(&WndClass);

}


LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam){

 

       // 이 영역은 다음에 언급하겠습니다.

 

}

 

 

반응형

+ Recent posts