°¢ ÇÁ·Î¼¼½º´Â ÀÚü â Ŭ·¡½º¸¦ µî·Ï ÇØ¾ß ÇÕ´Ï´Ù. RegisterClassEx ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ÀÀ¿ë ÇÁ·Î±×·¥ ·ÎÄà Ŭ·¡½º¸¦ µî·Ï ÇÕ´Ï´Ù. â ÇÁ·Î½ÃÀú¸¦ Á¤ÀÇ ÇÏ °í WNDCLASSEX ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ ä¿ì±â, RegisterClassEx ÇÔ¼ö ±¸Á¶¿¡ Æ÷ÀÎÅ͸¦ Àü´Þ ÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ ¿¹Á¦¿¡¼´Â ·ÎÄà â Ŭ·¡½º¸¦ µî·Ï ÇÏ °í ÁÖ Ã¢À» ¸¸µé±â À§ÇØ »ç¿ë ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
#include <windows.h>
// Global variable
HINSTANCE hinst;
// Function prototypes.
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
InitApplication(HINSTANCE);
InitInstance(HINSTANCE, int);
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
// Application entry point.
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
if (!InitApplication(hinstance))
return FALSE;
if (!InitInstance(hinstance, nCmdShow))
return FALSE;
while (GetMessage(&msg, (HWND) NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
UNREFERENCED_PARAMETER(lpCmdLine);
}
BOOL InitApplication(HINSTANCE hinstance)
{
WNDCLASSEX wcx;
// Fill in the window class structure with parameters
// that describe the main window.
wcx.cbSize = sizeof(wcx); // size of structure
wcx.style = CS_HREDRAW |
CS_VREDRAW; // redraw if size changes
wcx.lpfnWndProc = MainWndProc; // points to window procedure
wcx.cbClsExtra = 0; // no extra class memory
wcx.cbWndExtra = 0; // no extra window memory
wcx.hInstance = hinstance; // handle of instance
wcx.hIcon = LoadIcon(NULL,
IDI_APPLICATION); // predefined app. icon
wcx.hCursor = LoadCursor(NULL,
IDC_ARROW); // predefined arrow
wcx.hbrBackground = GetStockObject(
WHITE_BRUSH); // white background brush
wcx.lpszMenuName = "MainMenu"; // name of menu resource
wcx.lpszClassName = "MainWClass"; // name of window class
wcx.hIconSm = LoadImage(hinstance, // small class icon
MAKEINTRESOURCE(5),
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
LR_DEFAULTCOLOR);
// Register the window class.
return RegisterClassEx(&wcx);
}
BOOL InitInstance(HINSTANCE hinstance, int nCmdShow)
{
HWND hwnd;
// Save the application-instance handle.
hinst = hinstance;
// Create the main window.
hwnd = CreateWindow(
"MainWClass", // name of window class
"Sample", // title-bar string
WS_OVERLAPPEDWINDOW, // top-level window
CW_USEDEFAULT, // default horizontal position
CW_USEDEFAULT, // default vertical position
CW_USEDEFAULT, // default width
CW_USEDEFAULT, // default height
(HWND) NULL, // no owner window
(HMENU) NULL, // use class menu
hinstance, // handle of application instance
(LPVOID) NULL); // no window-creation data
if (!hwnd)
return FALSE;
// Show the window and send a WM_PAINT message to the window
// procedure.
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}
µî·Ï ÀÀ¿ë ÇÁ·Î±×·¥ Àü¿ª Ŭ·¡½º´Â ÀÀ¿ë ÇÁ·Î±×·¥ ·ÎÄà Ŭ·¡½º µî·Ï ºñ½ÁÇÕ´Ï´Ù Á¦¿Ü ÇÏ °í´Â WNDCLASSEX ±¸Á¶ÀÇ ½ºÅ¸ÀÏ ¸â¹ö CS_GLOBALCLASS ½ºÅ¸ÀÏÀ» ÁöÁ¤ ÇØ¾ß ÇÕ´Ï´Ù.