Windows窗口框架(API入门一)

#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);     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值