我在CWND的子类中添加了菜单,但怎么不显示出来?
pMenuWnd 是一个指向CWND子类的指针;
主要的代码如下:
m_NewMenu->LoadMenu(IDR_MENU1);
pMenuWnd->SetMenu(m_NewMenu); pMenuWnd->ShowWindow(SW_SHOW);帮我看看原因在哪。
pMenuWnd 是一个指向CWND子类的指针;
主要的代码如下:
m_NewMenu->LoadMenu(IDR_MENU1);
pMenuWnd->SetMenu(m_NewMenu); pMenuWnd->ShowWindow(SW_SHOW);帮我看看原因在哪。
许多CWnd类(如CButton)是没有菜单的.
void CMyTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CRect rc(200, 100, 300, 300);
pMenuWnd = new CMenuWnd();
pMenuWnd->Create( NULL, NULL,WS_VISIBLE| WS_BORDER| WS_TILED |WS_CAPTION , rc,this,NULL);
m_NewMenu = new CMenu();
m_NewMenu->LoadMenu(IDR_MENU1);
pMenuWnd->SetMenu(m_NewMenu); pMenuWnd->ShowWindow(SW_SHOW);
}
void CHeView::OnLButtonDown(UINT nFlags, CPoint point)
{
CMenu PopupMenu;
PopupMenu.CreatePopupMenu();
PopupMenu.AppendMenu(MF_STRING,ID_FILE_NEW,"NEW..");
//...ClientToScreen(&point);
PopupMenu.TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CView::OnLButtonDown(nFlags, point);
}方法二:
void CHeView::OnLButtonDown(UINT nFlags, CPoint point)
{ CMenu menu;
menu.LoadMenu(IDR_DUMMY);
CMenu *pMenu=menu.GetSubMenu(0);
ASSERT(pMenu!=NULL); ClientToScreen(&point);
pMenu->TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CView::OnLButtonDown(nFlags, point);
} 方法三:
void CHeView::OnLButtonDown(UINT nFlags, CPoint point)
{
CWnd *pWnd=AfxGetApp()->GetMainWnd();
CMenu * pMenu=pWnd->GetMenu();
pMenu=pMenu->GetSubMenu(0);
ASSERT(pMenu!=NULL); ClientToScreen(&point);
pMenu->TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);}