注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

VC 2010:对话框窗口捕获不到WM_LBUTTONDBLCLK消息  

2011-04-11 13:05:42|  分类: vc界面编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
参考:WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK

对话框窗口捕获不到WM_LBUTTONDBLCLK消息。连续两次快速点击窗口,获得WM_LBUTTONDOWN、WM_LBUTTONUP、WM_LBUTTONDOWN、WM_LBUTTONUP的消息序列。

参考:


        难道要这样处理:记录下每次WM_LBUTTONDOWN的消息时间,如果WM_LBUTTONDOWN时间和上次WM_LBUTTONDOWN的时间间隔很短,就触发WM_LBUTTONDBLCLK消息?
        其实,这样肯定是可以的!但是,现在是写库,不是写软件,所以,兼容性是第一位,其次才是解决问题。所以,我必须搞清楚,为什么我的程序没有WM_LBUTTONDBLCLK消息。

解决!
RegisterClassEx时,WNDCLASSEX结构体的style中加入CS_DBLCLKS类风格。否则,windows不会向窗口发送双击事件。

参考:
函数正常对话框编辑器与某个自定义控件的自定义控件的窗口类必须包括 CS_DBLCLKS 样式。   如果自定义控件不具有 CS_DBLCLKS 样式,双精度型-单击该控件在对话框编辑器中不会导致该自定义控件的函数显示其样式对话框。但是,控件的样式对话框是从编辑菜单上的样式命令仍可访问的。   在对话框编辑器子类每个控制它创建并处理 WM_LBUTTONDBLCLK 消息。在此邮件的响应中自定义控件要求以显示其样式对话框。   如果自定义控件的窗口类不具有 CS_DBLCLKS 样式,Windows 不会将任何 WM_LBUTTONDBLCLK 消息发送到该控件。如此一来,对话框编辑器不调用自定义控件的样式对话框框中函数并不会显示对话框。 

CS_HREDRAW当窗口水平方向的宽度变化时重绘整个窗口.CS_VREDRAW 当窗口垂直方向的宽度变化时重绘整个窗口.

CS_SAVEBITS
http://topic.csdn.net/u/20090728/22/90265d07-f30a-431a-b02a-cec93ea87883.html
将屏幕图像中被该(窗口)类窗口遮挡的部分保存为一个位图。当窗口移走时,系统用保存的位图来还原屏幕图像,包括被遮挡住的其他窗口。因此,如果位图占用的内存没被释放且其他屏幕操作未宣布存储图像无效,系统不发送WM_PAINT消息至那些被遮挡的窗口。
  此窗口风格对那些短暂显示并在其他屏幕活动发生前移除的小窗口(如菜单或对话框)很有用。这一风格增加了显示窗口所需的时间,因为系统必须先分配内存来存储位图。




  评论这张
 
阅读(2022)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016