设为首页 加入收藏

实际上,您不会看到这些按钮值中的大多数。从1到4的通知码是用於一种叫做BS_USERBUTTON的已不再使用的按钮的(它已经由BS_OWNERDRAW和另一种不同的通知方式所替换)。通知码6到7只有当按钮样式包括标识BS_NOTIFY才发送。通知码5只对BS_RADIOBUTTON、BS_AUTORADIOBUTTON和BS_OWNERDRAW按钮发送,或者当按钮样式中包括BS_NOTIFY时,也为其他按钮发送。

您会注意到,在用滑鼠单击按钮时,该按钮文字的周围会有虚线。这表示该按钮拥有了输入焦点,所有键盘输入都将传送给子视窗按钮控制项,而不是传送给主视窗。但是,当该按钮控制项拥有输入焦点时,它将忽略所有的键盘输入,除了Spacebar键例外,此时Spacebar键与滑鼠具有相同的效果。

父视窗向子视窗发送讯息
 

虽然BTNLOOK中没有显示这一事实,但是父视窗讯息处理程式也能向子视窗控制项发送讯息。这些讯息包括以字首WM开头的许多讯息。另外,在WINUSER.H中还定义了8个按钮说明讯息;字首BM表示「按钮讯息」。这些按钮讯息如下表所示:

TOP

子视窗控制项(十)
2010-12-30 21:12:42 】 浏览:46670
Tags:视窗 控制
m

子视窗ID

通知码

子视窗代号

如果您正在移植16位元Windows程式,那么要注意改变这些讯息参数以容纳32位元的代号。

子视窗ID是在建立子视窗时传递给CreateWindow的值。在BTNLOOK中,这些ID被显示在显示区域中,并使用0到9分别标识10个按钮。子视窗代号是Windows从CreateWindow传回的值。

通知码更详细表示了讯息的含义。按钮通知码的可能值在Windows表头档案中定义如下:

表9-1
按钮通知码识别字
BN_CLICKED 0
BN_PAINT 1
BN_HILITE or BN_PUSHED 2
BN_UNHILITE or BN_UNPUSHED 3
BN_DISABLE 4
BN_DOUBLECLICKED or BN_DBLCLK 5
BN_SETFOCUS 6
BN_KILLFOCUS 7
表9-2
按钮讯息
BM_GETCHECK 0x00F0 BM_SETCHECK 0x00F1 BM_G
首页 上一页 7 8 9 10 11 12 13 下一页 尾页 10/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇功能表及其他资源 下一篇计时器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目