设为首页 加入收藏

TOP

对话方块(三十七)
2010-12-30 21:13:56 来源: 作者: 【 】 浏览:40884
Tags:对话 方块
NDOW + 1) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = TEXT ("EllipPush") ;

RegisterClass (&wndclass) ;

该视窗类别指定视窗讯息处理程式为EllipPushWndProc,在ABOUT3.C中正是这样。

EllipPushWndProc视窗讯息处理程式只处理三种讯息:WM_PAINT、WM_KEYUP和WM_LBUTTONUP。在处理WM_PAINT讯息时,它从GetClientRect中取得视窗的大小,从GetWindowText中取得显示在按键上的文字,用Windows函式Ellipse和DrawText来输出椭圆和文字。

WM_KEYUP和WM_LBUTTONUP讯息的处理非常简单:

视窗讯息处理程式使用GetParent来取得其父视窗(即对话方块)的代号,并发送一个WM_COMMAND讯息,讯息的wParam等於控制项的ID,这个ID是用GetWindowLong取得的。然後,对话方块视窗讯息处理程式将这个讯息传给ABOUT3内的对话方块程序,结果得到一个使用者自订的按键,如图11-3所示。您可以用同样的方法来建立其他自订对话方块控制项。


 

图11-3 ABOUT3建立的自订按键

这就是全部要做的吗?其实不然。通常,对於维护子视窗控制项所需要的处理而言,EllipPushWndProc只是一个空架子。例如,按钮不会像普通的按键那样闪烁。要翻转按键内的颜色,视窗讯息处理程式必须处理WM_KEYDOWN(来自空白键)和WM_LBUTTONDOWN讯息。视窗讯息处理程式还必须在收到WM_LBUTTONDOWN讯息时拦截

首页 上一页 34 35 36 37 38 39 40 下一页 尾页 37/82/82
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇剪贴簿 下一篇功能表及其他资源

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: