MFC动态创建的按钮怎么添加双击响应??双击!!!

我对我动态创建的64个按钮添加了单击响应ON_CONTROL_RANGE(BN_CLICKED,IDC_BTN_0,IDC_BTN_END,OnClkSinglePin)... 我对我动态创建的64个按钮添加了单击响应 ON_CONTROL_RANGE(BN_CLICKED,IDC_BTN_0, IDC_BTN_END, OnClkSinglePin)。
单击响应是可以的,添加双击响应
ON_CONTROL_RANGE(BN_DOUBLECLICKED,IDC_BTN_0, IDC_BTN_END,OnDoubleclicked),
但是双击怎么也响应不了。按钮已经是BS_NOTIFY风格。 m_Btn[k].Create("",WS_CHILD |BS_NOTIFY| WS_VISIBLE,。。。。
到底该怎么添加双击响应啊!!!!!
可追加分!!!我分有的是!!
展开
 我来答
百度网友d4e476e
2011-11-04 · TA获得超过101个赞
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:47.9万
展开全部
mfc对于非自绘按钮不响应双击事件的,虽然可以通过向导添加也没用。
要处理双击有两个方法:
1、自绘按钮,处理事件,比较麻烦
2、重写父窗口的PreTranslateMessage(MSG* pMsg)截获双击事件,
if(pMsg->message==WM_LBUTTONDBCLK)
{
int nBtnID = GetWindowLong(pMsg->hWnd,GWL_ID);
if(nBtnID >= IDC_BTN_0 && nBtnID<= IDC_BTN_END)
{
OnBTNDBClick(nBtnID) ;
}

}
追问
编译后提示'hWnd' : is not a member of 'tagMSG'。
pMsg->hWnd这个参数应该怎么填啊?
对按钮的定义是这样的: CButtonST m_Btn[64];
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2011-11-04 · TA获得超过5043个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2371万
展开全部
无法直接添加。只能通过重载对话框的PreTranslateMessage来实现。
在该函数中截获双击消息,判断鼠标位置位于哪一个按钮之上,然后做不同的处理
追问
重写父窗口的PreTranslateMessage(MSG* pMsg)截获双击事件,
if(pMsg->message==WM_LBUTTONDBCLK)
{
int nBtnID = GetWindowLong(pMsg->hWnd,GWL_ID);
if(nBtnID >= IDC_BTN_0 && nBtnIDhWnd这个参数应该怎么填啊?
对按钮的定义是这样的: CButtonST m_Btn[64];
追答
hWnd应该为hwnd。去看MSG的成员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hongchengbd
2011-11-04
知道答主
回答量:9
采纳率:0%
帮助的人:4.1万
展开全部
这个我不懂,还没学到这来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
52374078
2011-11-04 · TA获得超过104个赞
知道答主
回答量:119
采纳率:0%
帮助的人:34.6万
展开全部
说的对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式