为何继承CStatic类的对象没有响应OnLButtonDown
本帖最后由 chuanbangchuanbang 于 2012-12-08 23:54:52 编辑 我新建了一个对话框程序,里面加入了一个静态控件,然后创建了一个类CMyStatic继承CStatic,且与加入的静态控件关联,并且在CMyStatic里面重载了OnPaint,而且还在CMyStatic里面处理了OnLButtonDown。在主对话框类里面添加了一个CMyStatic类型的成员。为啥在点击静态控件的时候没有响应CMyStatic里面的消息呢?该如何解决此问题?
[最优解释]
如果Static控件没有SS_NOTIFY风格默认WM_NCHITTEST返回HTTRANSPARENT
你可以给Static控件加上SS_NOTIFY风格,或者处理WM_NCHITTEST返回HTCLIENT
[其他解释]
SS_NOTIFY风格是关键。
或者去其父窗体PretranslateMessage中捕获WM_LBUTTONDOWN,根据坐标位置筛选也可以
[其他解释]
应该是被主对话框截获了 在主对话框的OnLButtonDown里根据CPoint位置判断是否点击的是CMyStatic(你创建的时候应该是有指定位置的) 是关联的话 可以先在OnInitDialog里得到CMyStatic的位置