我在一个对话框MyDlg中,加入了一个EditBox--> MyEdit, 在MyEdit上单击鼠标右键,弹出自己定义的菜单MyMenu, 那么该菜单事件是否应该写入对话框MyDlg的事件中呢?
解决方案 »
- DLL中对话框调用其他类的成员方法出错
- 昨天在QQ上,有个美女说要嫁给我,开心散分
- 窗口移动问题
- 请大家解决个问题
- 绑定地址和端口号的问题,搞了一个晚上,心力憔瘁啊!
- 我是在UNICODE版本下编程,为何用CStdioFile读进一行ANSI文本,就出现怪吗?代码是。。。
- 请机器装有VC 6.0英文版的前辈将DEVEDIT.PKG、DEVSHL.DLL、MSDEV.exe三个文件打个包从QQ(7796816)上发给我,谢谢,50分相送!在线等待。
- 请问怎样获得屏幕鼠标?
- ==$==请高手解答:关于DCOM调用的怪现象==$==
- WORD的一个签章控件
- VC中Telnet的问题%至急%
- 帮我看看vc连接这个ado数据库怎么连不上,是不是设置有问题?
UINT uFlags,
int x,
int y,
int nReserved,
HWND hWnd,
HWND prcRect
);
hWnd
[in] Handle to the window that owns the shortcut menu. This window receives all messages from the menu.
如果是这样,当然应该把该菜单事件写入对话框MyDlg的事件中
void CMyEdit::OnRButtonDown(UINT nFlags, CPoint point)
{
ClientToScreen(&point);
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MNU_FORMAT));
CMenu* popup = menu.GetSubMenu(0);
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
return;
CEdit::OnRButtonDown(nFlags, point);
}上面的 menu: IDR_MNU_FORMAT 中有一个项目 ID_LEFT, 我在点击该项目时,希望能够在 CMyEdit 所在对话框窗体 MyDlg 中接受到该消息。但是我利用向导生成的代码虽然包含该事件,却无法实现该事件的内容。如下示:
MyDlg.h
class MyDlg: public CDialog{protected:
..........
afx_msg void OnLeft();
...........
}MyDlg.Cpp
{
............... BEGIN_MESSAGE_MAP(FormatManagerDlg, CDialog)
//{{AFX_MSG_MAP(FormatManagerDlg)
......................
ON_COMMAND(ID_LEFT, OnLeft)
......................
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
..............
}void MyDlg::OnLeft()
{
AfxMessageBox("ok"); ---->此处代码不执行
}
请大家帮忙想一下!谢谢大家!
这一句中的this改为this->GetParent()
在这里指定哪个窗口接收消息。