Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13030242
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类:

2012-12-19 21:09:53

      深入MFC类库,需要先从windows应用程序的基本结构入手。

windows应用程序框架:

      windows操作系统采用了图形用户界面,借助与它提供的API函数,用户可以编出具有漂亮图形界面的windows应用程序,这些程序都有着相同的窗口风格和菜单结构。用户界面良好,方便用户操作。利用windows API函数编程,需要了解窗口、句柄、稍息等概念。

 

1、窗口:

    编写一个windows应用程序首先应创建一个或者多个窗口,而后应用程序的运行过程既是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理与数据交换的过程。

窗口是应用程序与用户进行交互的界面,应用程序通过窗口传递信息给用户,同样,用户通过窗口输入数据,给应用程序发布命令。

如word应用程序界面就是一个窗口,它具有窗口的一些基本特征。

    image

                                                    图1

 

2、句柄:

     windows操作系统中所谓“句柄(Handle)”是唯一标识某个windows对象(如窗口、图标、光标、画刷、菜单等)的一个32位无符号整数。

句柄是windows对象的代号。

     windows程序通过通过调用win32 API函数获得某个windows对象的句柄,只有有了句柄,程序才能调用与其对应的windows对象。

 

3、消息:

     windows应用程序通过windows消息与应用程序及系统进行信息交换。

     当在应用程序中触发一事件(点击鼠标左键)时,就会产生该事件的一个消息(WM_LBUTTONDOWM),接着调用该消息的消息处理函数(OnLButtonDown()),来响应事件。

消息往往用如下的结构体表示,具有六个成员:

 

  1. typedef struct tagMSG { // msg
  2.    HWND hwnd; // 窗口句柄,即触发消息的窗口
  3.    UINT message;// 消息值,包键盘键入消息等
  4.    WPARAM wParam;// 包含有关消息的附加消息,不同消息其值有所不同
  5.    LPARAM lParam;//
  6.    DWORD time;// 指定消息送到消息队列的时间
  7.    POINT pt;//指定消息发送时屏幕光标的位置
  8. } MSG;


 

wParam 包含有关消息的附加消息,不同消息其值有所不同 。它的意思,比如点击键盘上任意一个键都会产生一个WM_CHAR消息。为了区别按下的是什么键,就添加wParam、lParam这两个键来区别。

阅读(3890) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~