本站首页    管理页面    写新日志    退出

首页(46) 其它(20) VC++学习(17) 程序员(5) 音乐欣赏(3) 


Ashes to ashes Dust to dust
 
 ♀最新日志                                                        ♀最新回复                                  
[转]乐到我抽筋儿的几个极品笑话
PAYPAL的奇怪问题
第一次尝试
递归
明天交毕业设计中期报告了
等到googlepage了
GTalk和Gmail
修好了鼠标!
是不是中毒了?
有Windows Live Messen
回复:google打不开了
回复:《精通MFC》——第二章(III)
回复:《精通MFC》——第二章(III)
回复:《精通MFC》——第二章(III)
回复:理查得·克莱德曼 的经典钢琴曲
回复:理查得·克莱德曼 的经典钢琴曲
回复:理查得·克莱德曼 的经典钢琴曲
回复:修好了鼠标!
回复:理查得·克莱德曼 的经典钢琴曲
回复:理查得·克莱德曼 的经典钢琴曲
«September 2025»
123456
78910111213
14151617181920
21222324252627
282930
 
 

《精通MFC》——第二章(II)
读书笔记

lpEnumFunc是回调函数指针。每发现一个子窗口就会通过它回调函数。被调回的函数必须满足下面的签名: BOOL CALLBACK EnumChildProc(        HWND           hwnd,            //子窗口句柄        LPARAM lParam           //应用定义的数据 ); 所谓的签名时原型的另一种表述。对于函数而言,它的签名包括函数名、每个参数类型及返回值类型。               下面的代码演示了如何用EnumChildWindows获得父窗口的所有后代窗口。               演示代码:  P42   2         Z序关系        Windows操作系统通过一个全局的队列维持窗口的Z序。添加窗口时,它按照下面的规则设定窗口的Z序:如果待添加的窗口时WS_TOPMOST风格,那么它将变为顶层窗口,也就是位于所有现存窗口的顶端。这一点跟待添加的窗口是否为活动或后台窗口无关;如果待添加的窗口为子窗口,则它将拥有和父窗口相同的Z序。对于其它窗口,则放在同种类型的窗口的顶部。        同一个窗口类可以有多个窗口实例,这些窗口实例就是同种类型的。               通过调用BringWindowToTop, 可将一个窗口带到相同类型的窗口的顶部:        BOOL BringWindowToTop(               HWND hWnd        //handle to window        );                      如果hWnd表示的窗口不是子窗口,那么它将被激活;如果hWnd表示的窗口               是子窗口,那么拥有该窗口的顶层父窗口会被激活。该函数只能改变同种类型也就           是同一个CLASS衍生的窗口的Z序。                      用户激活某个窗口的同时也将改变其Z序。系统将自动把激活的窗口放于同种              类型的窗口的顶部。                      当一个窗口位于顶部时,它所拥有的全部子窗口也将位于Z序的顶部。                                           父窗口拥有的每个子窗口的Z序是不同的,这些子窗口按照Z序从上到下排列。           通过调用GetTopWindow 可以获得Z序最高的子窗口:                      HWND GetTopWindow(                             HWND hWnd        //父窗口句柄                      );                      如果hWnd为NULL,则返回顶层窗口。                      然后通过调用GetNextWindow获得当前窗口的上一个或下一个子窗口:                      HWND GetNextWindow(                             HWND hWnd,       //当前窗口句柄                             UINT  wCmd       //方向                      );                      wCmd为GW_HWNDNEXT表示搜索Z序小于hWnd的下一个窗口;为                         GW_HWNDPREV表示搜索Z序大于hWnd的上一个窗口。如果找不到这样的窗口,        则返回NULL。   3         前后关系        通过调用GetForegroundWindow可以获得当前的前台窗口:               HWND GetForegroundWindow(VOID);        为了判断某个窗口是否为前台窗口,只要比较它的窗口句柄和GetForegroundWindow返回的句柄是否相等即可。        应用程序可以通过调用SetForegroundWindow可以设置前台窗口:               BOOL SetForegroundWindow(                      HWND hWnd        //窗口句柄               );   4         拥有关系        拥有关系不同于父子关系,它的关系存在于WS_OVERLAPPED和WS_POPUP风格的窗口之间。也就是说,一个重叠或弹出窗口能被另一个重叠或弹出窗口所拥有。        一个被拥有的窗口具有如下的特征:        它总是位于拥有它的窗口的Z序之上        当窗口被销毁时,它所拥有的窗口也将被自动销毁        当窗口最小化时,它所拥有的窗口将被隐藏。   为了创建被拥有的窗口,必须满足下列条件:        调用CreateWindowEx时,要设置hwndParent参数,该参数表示哪个窗口将拥有创建的窗口。        hwndParent指示的窗口必须具有WS_OVERLAPPED或WS_POPUP风格。如果hwndParent指示窗口是一个子窗口,那么hwndParent的顶层父窗口将拥有新创建的窗口。        被创建的窗口必须具有WS_OVERLAPPED或WS_POPUP风格。          跟父子关系不同,一旦在窗口间建立起拥有关系,这种关系就不能更改。应用程序可以通过向GetWindow函数传入GW_OWNER标记来获得拥有该窗口的窗口句柄:        HWND GetWindow(               HWND hWnd,       //初始窗口句柄               UINT  uCmd        //关系,GW_OWNER表示查询hWnd的拥有者        );   2.4        消息和消息处理 1         系统定义的消息        每一个系统定义的消息都有唯一标志符常量。在SDK头文件中这些常量被定义为32位整数。标志符常量的字符分为两部分,前缀和后缀。前缀表示处理该消息的窗口的类别,后缀描述了该消息的目的。

 

00oo.. 发表于 2005/11/7 21:25:59

阅读全文(2211) | 回复(1) | 编辑 | 精华


 

回复:《精通MFC》——第二章(II)
读书笔记

还好,提到了Z序!

 

兵兵(游客)发表评论于2005/11/20 9:38:14

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 
♀链接


AoGo汇编小站: http://www.aogosoft.com/

CSDN:        http://www.csdn.net/

编程爱好者:   http://www.programfan.com/

阿蒙编程之家: http://www.vchome.net/

看雪学院:     http://www.pediy.com

VC开发指南:http://www.copathway.com

 

♀留言板                                                             ♀Blog信息

签写新留言

人生需要加油!
MSN LIVE messager邀请
我加你了google talk
blog名称:00oo..
日志总数:46
评论数量:228
留言数量:2
访问次数:392171
建立时间:2004年11月6日
用户名称:
登陆密码:
密码保存:



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144767292 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号