Help me!如何在VC中响应按钮的鼠标右击.
我做了一个对话框,在对话框中放了几个按钮,如何响应鼠标在按钮上的右击?(每个按钮右击弹出的内容不一样)请高手指点. 问题点数:50、回复次数:3Top
1 楼sunyanbiao_12(废人)回复于 2000-11-16 19:47:00 得分 5
从CButton类派生一个类,并且在WM_RBUTONDOWN消息中做你想做的事情。Top
2 楼w_black()回复于 2000-11-16 20:05:00 得分 40
从CButton中导出一个新类;比如:CMyButton
在通过类向导,重载OnRButtonDown(UINT nFlags, CPoint point)
如:
void CMyButton::OnRButtonDown(UINT nFlags, CPoint point)
{
UINT nID = GetDlgCtrlID();
switch(nID)
{
case IDC_BUTTON1: //话框中的按钮1的ID
... //写上要对ID为IDC_BUTTON1的按钮的处理
break;
case IDC_BUTTON2: //话框中的按钮2的ID
... //写上要对ID为IDC_BUTTON2的按钮的处理
break;
}
CButton::OnRButtonDown(nFlag, point);
}
但是,现在还没完,还得在
CXXXDlg中用CMyButton定义几个成员变量。如:
CMyButton m_Button1;
CMyButton m_Button2;
在打开对话框资源编辑器,放了两个按钮(这儿的按钮ID与上面case后面的ID对应)
另外,在CXXXDlg.cpp中重载OnInitDialog()(用类向导)
BOOL CXXXDlg::OnInitDialog()
{
m_Button1.SubclassDlgItem(IDC_BUTTON1, this); //这儿的按钮ID与上面按钮ID对应
m_Button1.SubclassDlgItem(IDC_BUTTON1, this); //这儿的按钮ID与上面按钮ID对应
}
即可。
Top
3 楼sun2000(非常可乐)回复于 2000-11-16 20:27:00 得分 5
你可以在PreTranslateMessage( MSG* pMsg )中判断pMsg->hwnd和pMsg->message来实现此功能,其它内容你可以参考前面几位所提到的。
Top




