设为首页 加入收藏

TOP

子视窗控制项(七)
2010-12-30 21:12:42 】 浏览:46643
Tags:视窗 控制
是对话方块用来获得文字尺寸的函式。此函式传回一个32位元的值,其中低字组表示宽度,高字组表示高度。由於GetDialogBaseUnits传回的值与从GetTextMetrics获得的值大致上相同,但GetDialogBaseUnits有时使用起来会更方便些,而且能够与对话方块控制项更好地保持一致。

对每个子视窗,它的子视窗ID参数应该各不相同。在处理来自子视窗的WM_COMMAND讯息时,ID帮助您的视窗讯息处理程式识别出相应的子视窗。注意子视窗ID是作为CreateWindow的一个参数传递的,该参数通常用於指定程式的功能表,因此子视窗ID必须被强制转换为HMENU。

CreateWindow呼叫的执行实体代号看起来有点奇怪,但是它利用了如下的事实,亦即在处理WM_CREATE讯息的过程中,lParam实际上是指向CREATESTRUCT (「建立结构」)结构的指标,该结构有一个hInstance成员。所以将lParam转换成指向CREATESTRUCT结构的一个指标,并取出hInstance。

(有些Windows程式使用名为hInst的整体变数,使视窗讯息处理程式能存取WinMain中的执行实体代号。在WinMain中,您只需在建立主视窗之前设定:

在第七章中的CHECKER3程式中,我们曾用GetWindowLong取得执行实体代号:

这几种方法都是正确的。)

在呼叫CreateWindow之後,我们不必再为这些子视窗做任何事情,由Windows中的按钮视窗讯息处理程式负责维护它们,并处理所有的重画工作(BS_OWNERDRAW样式的按钮例外,它要求程式绘制它,这些将在後面加以讨论)。在程式终止时,如果父视窗已经被清除,那么Windows将清除这些子视窗。

子视窗向父视窗发讯息
 

当您执行BTNLOOK时,将看到在显示区域的左边会显示出不同的按钮型态。我在前面已经提到过,用滑鼠单击按钮时,子视窗控制项就向其父视窗发送一个WM_COMMAND讯息。BTNLOOK拦截WM_COMMAND讯息并显示wParam和lParam的值,它们的含义如下:

LOWORD (wParam)

HIWORD (wParam)

lPara

首页 上一页 4 5 6 7 8 9 10 下一页 尾页 7/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇功能表及其他资源 下一篇计时器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目