打天ClassWizard->Message Maps
在message框中选WM_LBTTONxxx(自定),再点Add function.
在message框中选WM_LBTTONxxx(自定),再点Add function.
解决方案 »
- 关于StretchDIBits画图,有点郁闷
- 访问数据库问题?
- 大型网络游戏的网络底层怎么评价网络性能?
- 请问哪位星星做过“wia”的东东?window image aqu。。。
- 系统在休眠状态下启动系统后,如何屏蔽掉那个密码提示对话框,实现直接登陆
- 关于MFC及Win32的问题
- 定时器以及读写a/d,d/a的问题
- 找了半天不合适,请问如何在VC++中打开一个url,并得到返回的字串
- 编译出错,如何改正?
- 在对话框中如何把一个图片打印出来?图片在CBitmap对象中.
- in which place i can find the most beautiful reference answer about mfc (in chinese)?
- 我在ASP组件中(ATL)加了个方法OnTop,如下-》 (好急的问题)
你只要在把如下代码:
ON_COMMANDEX(ID_DO1,OnDo)
ON_COMMANDEX(ID_DO2,OnDo)
ON_COMMANDEX(ID_DO2,OnDo)
......
ON_COMMANDEX(ID_DO16,OnDo)
加入
BEGIN_MESSAGE_MAP END_MESSAGE_MAP
之间即可
再在另一个函数里处理这个消息。
2。如果你是菜鸟。最适合你了(呵呵。。)
A。写一个函数。ALLMESSAGE();
B。在所有的消息函数里调用他。
C。没有了
在 OnDo()中怎么知道是哪个按钮的消息?ON_COMMANDEX 在MSDN中找不到?
好了,我把VC下的“照抄”级的代码给你
OnButton0()等等的框架是双击按钮得到的
Bot(int index)是用Wizard加进去的CMmm::OnButton0()
{
Bot(0);
}
CMmm::OnButton1()
{
Bot(1);
}
CMmm::OnButton2()
{
Bot(2);
}
CMmm::Bot(int index)
{
//index是你所要的,下面是调试信息显示(没有其他的用途)
CString str;
str.Format("你的键:%d",index);
::AfxMessageBox(str);
}如果你需要高级的方法,“消息映射”或者其它的,给我发个email.最后提醒你别忘了给分,我很穷的,哈哈哈哈!!!!!
我的处理函数里怎么得到按钮的ID或HWND?
找到“//}}AFX_MSG”
在他的下面添加afx_msg void OnButtonClk(WPARAM wParam);MyDialerDlg.cpp
找到//}}AFX_MSG_MAP
在它的下面添加ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON16, OnButtonClk)确保IDC_BUTTON1到IDC_BUTTON16的ResourceID是连续的
譬如IDC_BUTTON1=2001,IDC_BUTTON2=2002...IDC_BUTTON16=2016。
void CMyDialerDlg::OnButtonClk(WPARAM wParam)
{
// wParam中就是被按下的button的ResourceID
int nButtonID = wParam - 2000; // 得到的就是1-16这几个数字了
}