- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC深入详解-窗口的创建
1.4.2 窗口的创建
创建一个完整的窗口,需要经过下面几个操作步骤:
* 设计一个窗口类;
* 注册窗口类;
* 创建窗口;
* 显示及更新窗口。
下面的四个小分节将分别介绍创建窗口的过程。完整的例程请参见光盘中的例子代码Chapter1目录
下WinMain。
1.设计一个窗口类
一个完整的窗口具有许多特征,包括光标(鼠标进入该窗口时的形状)、图标、背景色等。窗口的创
建过程类似于汽车的制造过程。我们在生产一个型号的汽车之前,首先要对该型号的汽车进行设计,在图
纸上画出汽车的结构图,设计各个零部件,同时还要给该型号的汽车取一个响亮的名字,例如“奥
迪A6”。在完成设计后,就可以按照“奥迪A6”这个型号生产汽车了。
类似地,在创建一个窗口前,也必须对该类型的窗口进行设计,指定窗口的特征。当然,在我们设计
一个窗口时,不像汽车的设计这么复杂,因为Windows已经为我们定义好了一个窗口所应具有的基本属
性,我们只需要像考试时做填空题一样,将需要我们填充的部分填写完整,一种窗口就设计好了。
在Windows中,要达到作填空题的效果,只能通过结构体来完成,窗口的特征就是由WNDCLASS结构体来
定义的。WNDCLASS结构体的定义如下(请读者自行参看MSDN):
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
下面对该结构体的成员变量做一个说明。
第一个成员变量style指定这一类型窗口的样式,常用的样式如下:
n CS_HREDRAW
当窗口水平方向上的宽度发生变化时,将重新绘制整个窗口。当窗口发生重绘时,窗口中的文字和图
形将被擦除。如果没有指定这一样式,那么在水平方向上调整窗口宽度时,将不会重绘窗口。
n CS_VREDRAW
当窗口垂直方向上的高度发生变化时,将重新绘制整个窗口。如果没有指定这一样式,那么在垂直方
向上调整窗口高度时,将不会重绘窗口。
n CS_NOCLOSE
禁用系统菜单的Close命令,这将导致窗口没有关闭按钮。
n CS_DBLCLKS
当用户在窗口中双击鼠标时,向窗口过程发送鼠标双击消息。
style成员的其他取值请参阅MSDN。
知识点 在Windows.h中,以CS_开头的类样式(Class Style)标识符被定义为16位的常量,这些
常量都只有某1位为1。在VC++开发环境中,利用goto definition功能,可以看
到CS_VREDRAW=0x0001,CS_HREDRAW=0x0002,CS_DBLCLKS
=0x0008,CS_NOCLOSE=0x0200,读者可以将这些16进制数转换为2进制数,就可以发现它们都只
有1位为1,并且为1的位各不相同。用这种方式定义的标识符称为“位标志”,我们可以使用位运算操
作符来组合使用这些样式。例如,要让窗口在水平和垂直尺寸发生变化时发生重绘,我们可以使用位或
(|)操作符将CS_HREDRAW和CS_VREDRAW组合起来,如style=CS_HREDRAW |
CS_VREDRAW。假如有一个变量具有多个样式,而我们并不清楚该变量都有哪些样式,现在我们想要
去掉该变量具有的某个样式,那么可以先对该样式标识符进行取反(~)操作,然后再和这个变量进行
与()操作即可实现。例如,要去掉先前的style变量所具有的CS_VREDRAW样式,可以编写代
码:style=style ~ CS_VREDRAW。
在Windows程序中,经常会用到这种位标志标识符,后面我们在创建窗口时用到的窗口样式,也是
属于位标志标识符。
第二个
您可能关注的文档
- UA 和阿迪也出现在二手球鞋市场,但情况和耐克并不一样.pdf
- UAX型电梯调试手册.pdf
- UA741_数据手册.pdf
- T梁吊装方案.doc
- U8成功应用于医疗卫生行业(北京大学第三医院).pdf
- U8 V11.X数据卸载.pdf
- Ubuntu 9.10正式版 wubi安装图解.doc
- t形三通旋塞阀.doc
- UDM100_150 超声波地连墙垂直度检测仪_简介.pdf
- uestc微波技术与天线复习题.pdf
- 江苏省灌云高级中学2023-2024学年高三上学期第一次月考地理试题含答案.docx
- 备战2024年高考物理一轮重难点复习 第十三章 近代物理.docx
- 江苏省高邮市一中2021-2022学年高三上学期第一次月考语文试题(原卷版).docx
- 江苏省华罗庚中学2023-2024学年高三上学期12月阶段检测数学试卷含答案.docx
- 江苏省海门中学2023-2024学年高三上学期第一次调研考试地理试题及答案.docx
- 备战2024年高考物理一轮重难点复习 第九章 恒定电流.docx
- 江苏省高邮市2023-2024学年高三下学期3月学情调研数学试题含答案.docx
- 备战2024年高考物理一轮重难点复习 实验十一:探究影响感应电流方向的因素.docx
- 备战2024年高考物理一轮重难点复习 实验三:验证平行四边形定则.docx
- 备战2024年高考物理一轮重难点复习 第十四章 光.docx
文档评论(0)