Windows 窗口设计(上篇)(待完善)

窗口创建步骤

1、设计窗口类

2、注册窗口类

3、创建窗口

4、显示及更新窗口

①设计窗口

typedef struct _WNDCLASS{

UNIT        style;  //CS_  窗口类型  窗口发生变化CS_HRESRAW | CS_VREDRAW

WNDPROC   lpfnWndProc;  //窗口过程函数(回调函数)

int           cbClsExtra;  //类附加内存空间 = 0

int           cbWndExtra; //窗口附加内存 = 0

HINSTANCE  hInstance;   //该窗口所属实例

HICON       hIcon;      //常用LoadIconhInstance,lpIcomName)设置图标,标准图标//hInstance为空,lpIcomName如设置为IDI_APPLICATION,IDI_ERROR

HCURSOR    hCursor; //常用LoadCursor(hInstance,lpIcomName)如(NULL,IDC_ARROW

HBRUSH     hbrBackground; //HGDIOBJ GetStockObjectint fnObject)获取一个画刷句柄,//可以获得笔、画刷(WHITE_BRUSH | DKGRAY_BRUSH)、字体、调色板 需要类型转换

LPCTSTR    lpszMenuName; //菜单名

LPCTSTR    lpszClassName; //给该窗口起个类名

}WNDCLASS;

②RegisterClass&wndclass

③创建窗口

HWND CreateWindow(

  LPCTSTR lpClassName,  //注册窗口类名

  LPCTSTR lpWindowName, //窗口标题

  DWORD dwStyle, //窗口标题栏、边框属性选择

  int x,    //初始化x-postion

  int y,    //初始化y-postion

  int nWidth, //初始化宽度

  int nHeight, //高度

  HWND hWndParent, //父窗口

  HMENU hMenu,  //菜单句柄

  HANDLE hInstance, //所属应用实例

  PVOID lpParam    //设置为空

);

 

HWND  hwnd;

hwnd = CreateWindow(...);

④显示窗口ShowWindow,

⑤UpdateWindow()

窗口类型变量

应用程序经常使用一类变量,该类变量每一位表示某一种特性。1表示有这种特性,0表示没有。通常每一位不利于记忆,对每一位表示的特征定义宏,宏表示的只有相应一位为1,其他为0.CS_VREDRAW =0x0001 CS_HREDRAW = 0x0002  CS_DBCLKS = 0x0008

如果想具有几种特征:style =CS_VREDRAW | CS_HREDRAW | CS_NOCLOSE

如果取消某种特征:style  & ~CS_NOCLOSE


关于窗口过程函数

lpfnWndProc指定窗口回调函数地址,用来处理消息。调用过程由os来完成,回调地址由应用程序指定及消息处理函数指定和编写  每种窗口有自己专用的回调函数

消息循环

while(getMessage(&msg,null,0,0))

{

   transmessage(&msg);    //装换消息,比如KEYUP KEYDOWN转换WM_CHAR

   Dispatchmessage(&msg);  //投递消息到消息队列

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值