#include <windows.h> #include <stdlib.h> #include <string.h>
//聲明函數 ////////////////////////////////////////////////////////////////// long WINAPI WndProc //消息處理函數 ( HWND hWnd, UINT iMessage, UINT wParam, LONG lParam ); BOOL InitWindowsClass(HINSTANCE hInstance); //初始化窗口類 BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);//初始化窗口 /////////////////////////////////////////////////////////////////// HWND hWndMain;
int WINAPI WinMain ( //主函數 HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{ MSG Message; if(!InitWindowsClass(hInstance)) return FALSE; if(!InitWindows(hInstance, nCmdShow)) return FALSE; while(GetMessage(&Message,0,0,0))//消息循環 { TranslateMessage(&Message); DispatchMessage(&Message); } return Message.wParam; }
//定義函數 /////////////////////////////////////////////////////////////////// long WINAPI WndProc( HWND hWnd, UINT iMessage, UINT wParam, LONG lParam ) { HDC hDC; HBRUSH hBrush; HPEN hPen; PAINTSTRUCT PtStr; POINT points[6]={{100,212},{70,227},{70,250},{130,250},{130,227},{100,212}}; switch(iMessage) { case WM_PAINT: hDC=BeginPaint(hWnd,&PtStr); hPen=(HPEN)GetStockObject(NULL_PEN); SelectObject(hDC,hPen); hBrush=(HBRUSH)GetStockObject(BLACK_BRUSH); SelectObject(hDC,hBrush); LineTo(hDC,50,50); DeleteObject(hPen); hPen=CreatePen(PS_SOLID,2,RGB(255,0,0)); SelectObject(hDC,hPen); LineTo(hDC,150,50); LineTo(hDC,100,137); LineTo(hDC,50,50); Polyline(hDC,points,6); Arc(hDC,63,137,138,212,100,137,100,137); Pie(hDC,213,137,288,212,240,137,260,137); Rectangle(hDC,213,212,287,250); RoundRect(hDC,213,100,287,137,20,20); DeleteObject(hPen); DeleteObject(hBrush); EndPaint(hWnd,&PtStr); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } }
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) { HWND hWnd; hWnd=CreateWindow("WinFill", //窗口類名 "填充示例", //窗口實例的標題名 WS_OVERLAPPEDWINDOW, //窗口風格 CW_USEDEFAULT, //窗口左上角座標爲默認值 0, CW_USEDEFAULT, //窗口的高爲默認值 0, //寬 NULL, //無父窗口 NULL, //無主菜單 hInstance, //創建此窗口的應用程序的當前句柄 NULL //不使用該值 ); if(!hWnd) return FALSE; // hWndMain=hWnd; ShowWindow(hWnd,nCmdShow); //顯示窗口 UpdateWindow(hWnd); //繪製用戶區 return TRUE; }
BOOL InitWindowsClass(HINSTANCE hInstance) { WNDCLASS WndClass; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,"END"); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName="WinFill"; WndClass.lpszMenuName=NULL; WndClass.style=CS_HREDRAW|CS_VREDRAW; return RegisterClass(&WndClass); }