问题描述
我在mfc中创建了一个对话框,上面有2个按钮。
一个人有BS_OWNERDRAW风格&其他不是。
当我双击非所有者绘制按钮时,双击所有者绘制按钮时生成2个BN_CLICK通知为
生成1 BN_CLICK
和1 BN_DBLCLK / BN_DOUBLECLICKED。
MSDN说BN_DBLCLK通知自动发送BS_OWNERDRAW
按钮。
如何获得BS_OWNERDRAW按钮的2个BN_CLICK通知?
$
谢谢,
Vaibhav。
Hi,
I have created a dialog in mfc with 2 buttons on it.
One is having BS_OWNERDRAW style & other is not.
When I double click on non owner draw button, 2 BN_CLICK notifcations are
generated while double clicking on owner draw button generates 1 BN_CLICK
and 1 BN_DBLCLK/BN_DOUBLECLICKED.
MSDN says that BN_DBLCLK notification is sent automatically BS_OWNERDRAW
buttons.
How do I get 2 BN_CLICK notifications for BS_OWNERDRAW button?
Thanks,
Vaibhav.
推荐答案
具有BS_OWNERDRAW风格的按钮不会像普通按钮那样响应双击。所以解决方案如上所述。当 double
点击 发生,使用WM_LBUTTONDOWN调用按钮的默认窗口过程而不是实际的 WM_LBUTTONDOWN 。
void CCustomBtn::OnLButtonDblClk(UINT nFlags, CPoint point)
{
DefWindowProc( WM_LBUTTONDOWN, MAKEWPARAM( nFlags,0),MAKELPARAM(point.x,point.y));
}
这篇关于BS_OWNERDRAW& BN_CLICK的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!