Win32プログラム



Win32 Program



#include LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM) int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow){ WNDCLASS wc HWND hwnd MSG msg wc.style=0 //Class Style wc.lpfnWndProc=(WNDPROC)WndProc //Window procedure address wc.cbClsExtra=0 //Class extra bytes wc.cbWndExtra=0 //Window extra bytes wc.hInstance=hInstance //Instance handle wc.hIcon=LoadIcon(NULL,IDC_ARROW) //Icon handle wc.hCursor=LoadCursor(NULL,IDC_ARROW) //Cursor handle wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1) //Background handle wc.lpszMenuName=NULL //Menu name wc.lpszClassName='MyWndClass' //WNDCLASS name RegisterClass(&wc) hwnd=CreateWindow( 'MyWndClass', //WNDCLASS name 'SDK Application', //Window title WS_OVERLAPPEDWINDOW, //Window style CW_USEDEFAULT, //Horizontal position CW_USEDEFAULT, //Vertical position CW_USEDEFAULT, //Initial width CW_USEDEFAULT, //Initial height HWND_DESKTOP, //Handle of parent window NULL, //Menu handle hInstance, //Application's instance handle NULL //Window-creation data ) ShowWindow(hwnd,nCmdShow) UpdateWindow(hwnd) while(GetMessage(&msg,NULL,0,0)){ TranlateMessage(&msg) DispatchMessage(&msg) } return msg.wParam } LPRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){ PAINTSTRUCT ps HDC hdc switch(message){ case WM_PAINT: hdc=BeginPaint(hwnd,&ps) Ellipse(hdc,0,0,200,100) EndPaint(hwnd,&ps) return 0 case WM_DESTROY: PostQuitMessage(0) return 0 } return DefWindowProc(hwnd,message,wParam,lParam) }