HWND CreateWindowEx( DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam );
- lpParam
-
[in] Long pointer to a value to be passed to the window through the CREATESTRUCT structure passed in the lParam parameter the WM_CREATE message.
HWND CreateWnd(HINSTANCE hInstance);
// static 을 붙여 선언함
static LRESULT CALLBACK aWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam);
char m_szMsg[256]; // 여기에 있는 메세지를 화면에 뿌릴 계획
WNDCLASSEX wndclass;
wndclass.lpfnWndProc = aWndProc; // 윈도우 프로시져 연결
...
...
return CreateWindowEx(/* 앞 부분 인자는 생략 */, this); // this 를 매개변수로 전달
static aClass *paClass; // this 를 대신할 포인터
switch(nMsg)
{
case WM_CREATE:
// 생성될 때 넘겨받은 this 포인터를 보관하여 추후 클래스 멤버참조시 사용한다
paClass = (aClass*)(((LPCREATESTRUCT)lParam)->lpCreateParams);
return 0;
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
// 멤버에 접근할 때 보관한 포인터를 통해 접근한다. paClass->
// 그냥 m_szMsg 로 접근하면 컴파일 에러가 난다.
DrawText(hDC, paClass->m_szMsg, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hWnd, &ps);
return 0;
}
return DefWindowProc(hWnd, nMsg, wParam, lParam);
http://blog.naver.com/bloodguy80 에서 퍼옴
'프로그래밍 > 공부관련' 카테고리의 다른 글
11월22일 플로렌스2 - 기획 1 (0) | 2009.11.23 |
---|---|
SetSamplerState (0) | 2009.08.27 |
STRICT 와 WIN32_LEAN_AND_MEAN 의 정의 (0) | 2009.08.21 |
* code sampler (0) | 2009.08.20 |
포인터 문제 가지고놀기 (0) | 2009.08.17 |