검색결과 리스트
글
[WinAPI]Hello WinAPI 예제
언어로그
2010. 12. 13. 19:31
#include <windows.h>
LRESULT FAR PASCAL WndProc(HWND, UINT, UINT, LONG);
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
static char szAppName[] = "Hello Win";
MSG msg;
HWND hwnd;
WNDCLASS wndclass;
// 실제 생성할 윈도우 스타일 지정
if (!hPrevInstance) {
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = szAppName;
wndclass.lpszClassName = szAppName;
// 윈도우를 만들겠다고 통보
RegisterClass(&wndclass);
}
// 실제 윈도우 생성
hwnd = CreateWindow(szAppName, "Hello Win Demo",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT FAR PASCAL WndProc(HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, "Hello, Windows!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}'언어로그' 카테고리의 다른 글
| [Perl] 펄 맛보기 (0) | 2010.12.15 |
|---|---|
| [WinAPI]Hello WinAPI 예제 (0) | 2010.12.13 |