Windows核心编程(1)-创新互联

一、创建过程 消息循环

站在用户的角度思考问题,与客户深入沟通,找到金东网站设计与金东网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟空间、企业邮箱。业务覆盖金东地区。

1.WinMain首先调用Api函数RegisterClass注册一个窗口类,这个类定义

 了窗口重要属性,如窗口过程地址, 默认背景色, 图标. 通过WNDCLASS结构字段

来定义, 程序生成一个窗口时,必须制定窗口类, 在类被使用之前,必须先对其进行注册,

这就是为什么RegisterClass在程序的开始即被调用的原因,

2.一旦WNDCLASS被注册,WinMain讲调用最重要的CreateWindow函数生成应用程序

3.一个MFC程序你看不到WinMain函数,他也不调用RegisterClass或CreateWIndow

由于生成没有WS_VISIBLE所以在CreateWIndow之后要调用ShowWindow


它是窗口可见,并确保WM_PAINT消息处理程序立刻执行。

4.接下来就是消息循环,为了检索并调度消息,WinMain执行一个简单的反复调用

GetMessage,TranslateMessage,和DispatchMessage这3个API讲函数的while循环语句

GetMessage检查消息队列,如果某个消息是有效的,则讲它从队列删除并复制到msg

否则GetMessage将停留到消息队列上知道消息有效, msg是MSG的一个实例

其知道保包含相关的消息参数,

例如消息ID和消息被放置在队列中的时间,  TranslateMessage函数将一个指示字符键的键盘


消息转换成容易使用的WM_CHAR消息,DispatchMessage函数则讲消息发送给窗口过程,

5.消息循环一直循环到GetMessage函数返回0值时结束, 这个只有WM_QUIT消息从消息队列中

被检索到时才发生,.这是WinMain结束,程序终止.

6.由DispatchMessage函数调度的消息将生产对窗口过程WinProc的调用, 其他没有被处理

的消息传递给了DefWindowProc函数进行默认处理,

7.窗口类是Windows系统的数据结构, 窗口类包含窗口重要信息,如窗口风格,窗口消息处理WndProc

窗口的光标等

二、应用程序对象

  1. MFC应用核心是基于CWinApp类对象,CWinApp提供了消息循环并来检索消息,

    并将消息调度给应用程序窗口


  2.覆盖ExitInstance在应用程序终止后调用,是释放资源的完美地方,覆盖要确保调用基类


三、框架窗口对象

1.MFC的CWnd类机器派生类为窗口或应用程序创建的窗口提供面向对象接口

窗口类是从CMainWindow是从CFrameWnd类派生的,后者又是从CWnd派生


CFrameWnd模仿框窗口的行为,

2.客户区和非客户区

窗口的非客户区包含标题栏.菜单栏,窗口边框

客户区指除非客户区之外的区域,都是客户区

3.窗口样式 是影响窗口外观和行为的一组属性集合


采用WS为前缀的宏定义

WS_BORDER创建有边框的窗口

WS_CAPTION创建有标题栏的窗口

WS_CHILD创建一个子窗口 等等...

4.窗口扩展样  一般用WS_EX_为前缀的宏定义

WS_EX_CLIENTEDGE指明窗口具有3D外观

WS_EX_APPWINDOW当窗口可见时,将窗口放置在任务栏

WS_EX_CONTROLPARENT允许用户TAB键遍历子窗口 ...

四、窗口的Z-Order与桌面窗口

  1. 窗口Z-Order的概念


屏幕一般X轴Y轴表示平面位置,而以Z轴表示前后位置,X轴从左向右

Z轴从屏幕内指向屏幕外,Z-Order值表示窗口的前后顺序,Z-Order值越大,在屏幕显示越靠近用户


2.桌面窗口

桌面窗口就是系统桌面对应的窗口,桌面窗口与其它的关系是,桌面窗口在最底层,其它窗口

在它之上,所有它的Z-Order值最小。

五、父窗口和所有者窗口

  1. 父窗口与所有者窗口的名次

窗口之间有两种关系, 一种是owner-owner关系 和 parent-child关系

前者是所有/被所有关系, 后者是父/子关系, owner称为所有窗口,parent为父窗口

2.父窗口与子窗口的关系

子窗口是嵌在父窗口上面的,就像是钉在父窗口上面的感觉,子窗口显示区域不能超过


父窗口的显示区域,超出的不显示,当父窗口被隐藏时,它的所有子窗口也被隐藏,

当父窗口销毁时,它拥有所有子窗口都被销毁.

3.所有者窗口与被所有者窗口的关系

被所有的窗口永远显示在所有者窗口之上,当所有者窗口最小化时,被所有窗口会自动隐藏

当所有窗口销毁时,被所有的窗口就会被销毁, 当所有者窗口移动时,被所有的窗口不一起移动,

被所有窗口可以在所有者窗口区域之外的位置显示.

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:Windows核心编程(1)-创新互联
网站URL:http://pwwzsj.com/article/gpcsi.html