BOOL CMyDlg::OnInitDialog()
{
.....
CRect rect;
GetClientRect(rect); if(!m_ToolBar.Create(this))
{
TRACE("failed to create tool bar");
return -1;
}
m_ToolBar.LoadToolBar(IDR_TOOLBAR1);
m_ToolBar.MoveWindow(0,0,rect.right,32); CMenu menu;
menu.LoadMenu(IDR_TEST);
CMenu* pMenu=menu.GetSubMenu(0); this->ClientToScreen(rect);
pMenu->TrackPopupMenu(TPM_LEFTALIGN,rect.left,rect.top,this);
...
}
为什么菜单不是显示在对话框中,而是在整个屏幕上???求解
{
.....
CRect rect;
GetClientRect(rect); if(!m_ToolBar.Create(this))
{
TRACE("failed to create tool bar");
return -1;
}
m_ToolBar.LoadToolBar(IDR_TOOLBAR1);
m_ToolBar.MoveWindow(0,0,rect.right,32); CMenu menu;
menu.LoadMenu(IDR_TEST);
CMenu* pMenu=menu.GetSubMenu(0); this->ClientToScreen(rect);
pMenu->TrackPopupMenu(TPM_LEFTALIGN,rect.left,rect.top,this);
...
}
为什么菜单不是显示在对话框中,而是在整个屏幕上???求解
解决方案 »
- 请问这种是什么网络?为什么本地连接没有IP和网关地址?
- ActiveX控件可以全屏吗?
- 怎么判断一个菜单是否已经弹出了,谢谢
- 什么API函数可以改变屏幕分辩率?thanks
- 菜鸟提问,望高手帮忙!在线等候结帖!
- 请教语法: “ |= ” 是什么意思?
- 哪位高手可以给我解释一下《MFC Windows 程序设计》中的一个程序的疑问。
- 串口读取数据的问题,很简单的。
- UP有分,我希望给系统发一条命令让它重新刷新即插即用硬件。我的问题就是如何去实现这个发一条命令给系统,强制让系统重新找新硬件?
- c#已经有了,那现在开始学mfc和atl有必要吗?
- 如何从一个文件中一行一行读取字符,再存储在一个二进制文件中
- 急救,怎么处理png图片透明度
MoveWindow(坐标)// 此处是谁Move到谁(坐标系统)的什么位置?
TrackPopupMenu(坐标,this);// 此处的坐标是相对于谁的坐标?this指的是由谁来响应菜单事件?然后明白了,再 ScreenToClient/ClienToScreen,注意调用者是谁。