MFC动态创建的按钮怎么添加双击响应??双击!!!
答案:4 悬赏:20 手机版
解决时间 2021-11-12 12:29
- 提问者网友:遁入空寂
- 2021-11-11 21:16
MFC动态创建的按钮怎么添加双击响应??双击!!!
最佳答案
- 五星知识达人网友:迟山
- 2021-11-11 22:10
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];
要处理双击有两个方法:
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];
全部回答
- 1楼网友:痴妹与他
- 2021-11-12 01:00
说的对
- 2楼网友:第幾種人
- 2021-11-12 00:09
这个我不懂,还没学到这来
- 3楼网友:玩家
- 2021-11-11 23:00
无法直接添加。只能通过重载对话框的PreTranslateMessage来实现。
在该函数中截获双击消息,判断鼠标位置位于哪一个按钮之上,然后做不同的处理追问重写父窗口的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];追答hWnd应该为hwnd。去看MSG的成员
在该函数中截获双击消息,判断鼠标位置位于哪一个按钮之上,然后做不同的处理追问重写父窗口的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];追答hWnd应该为hwnd。去看MSG的成员
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯