windows编程笔记一

在Windows应用程序中,窗口是通过窗口句柄HWND来标识的。我们要对某个窗口进行操作,首先要得到这个窗口句柄。

 

在windows程序中,消息由MSG结构体来表示的,MSG结构体定义:

>typedef struct tagMsg{

                   HWNDhwnd;

                   UINT  message;

                   WPARAMwParam;

                   DWORDtime;

                   POINTpt;

}MSG;

 

WinMain函数

应用程序的实现步骤:

1、  WinMain函数的定义;

2、  创建一个窗口;

3、  进行消息循环;

4、  编写窗口过程函数;

 

WinMain函数的定义:

函数声明:

>int WINAPI WinMain(

         HINSTANCEhInstance,

         HINSTANCEhPrevInstance,

         LPSTRlpCmdLine;

         IntnCmdShow                 

 

);

 

窗口的注册类:

WNDCLASS

设计完成窗口类后,需要顶用RegisterClass函数对其进行注册,注册后才可以创建该类型的窗口。

ATOM RegisterClass(CONST WNDCLASS*lpWndClass);

 

创建窗口

使用CreateWindow函数。

 

 

显示及更新窗口

显示床后函数:Bool ShowWindow(

HWND hWnd,

Int nCmdShow

);

更新窗口函数:Bool UpdateWindow(HWND hWnd);

 

 

消息循环

在创建创库、显示窗口、更新窗口后,我们需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。

GetMessage(LPMSG lpMsg, HWND hWnd, UINTwMsgFilterMin, UINT wMsgFilterMax);

 

通常编写的消息代码循环如下:

MSG msg;

While(GetMessage(&msg, NULL, 0, 0))

{

         TranslateMessage(&msg);

         DispatchMessage(&msg);

}

 

 

1、  操作系统接收到应用程序的窗口消息,将消息投递到该应用程序的消息队列中国,

2、  应用程序在消息循环中调用GetMessage函数从消息队列中取出一条一条的消息,消息取出后,应用程序可以对消息进行预处理。

3、  应用程序调用DispatchMessage,将消息回传给操作系统,消息是有MSG结构体对象来表示的。其中就包含了接收消息的窗口句柄。

4、  系统利用WNDCLASS结构体lpfnWndProc成员保存的窗口过程函数指针调用窗口的过程,对消息进行处理。

 

 

 

从消息队列中取消息还可以用PeekMessage函数,该函数的原型:

Bool PeekMessage(LPMSG lpMsg, HWND hWnd,UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg);

 

编写窗口过程函数:

用于处理发送给窗口的消息,一个Windows应用程序主要代码就几种在创酷哦过程函数中。

LRESULT CALLBACK WindowPro(HWND hwnd, UINT,uMsg, WPARAM, wParam, LPARAM lparam);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值