本文介绍了BS_OWNERDRAW& BN_CLICK的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我在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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 01:37