Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Menu MFC菜单不是绘图,而是白色空白_Menu_Mfc - Fatal编程技术网

Menu MFC菜单不是绘图,而是白色空白

Menu MFC菜单不是绘图,而是白色空白,menu,mfc,Menu,Mfc,我正在做一些窗口定制的东西。 我删除了CFrameWnd的标题栏和边框,并添加了我自己的标题栏。 看起来工作不错。 但如果我将菜单添加到此窗口,菜单将位于此窗口的顶部。(在我的标题栏上方) 因此,我添加了新的CFrameWnd并将我的菜单设置为这个新的CFrameWnd。 这是代码 CMenu * pMenu = this->GetMenu(); if( pMenu != NULL ) { this->SetMenu(NULL); m_pMenuWnd = new

我正在做一些窗口定制的东西。 我删除了CFrameWnd的标题栏和边框,并添加了我自己的标题栏。 看起来工作不错。 但如果我将菜单添加到此窗口,菜单将位于此窗口的顶部。(在我的标题栏上方) 因此,我添加了新的CFrameWnd并将我的菜单设置为这个新的CFrameWnd。 这是代码

CMenu * pMenu = this->GetMenu();
if( pMenu != NULL )
{
    this->SetMenu(NULL);

    m_pMenuWnd = new CMenuWindow();
    m_pMenuWnd->Create(NULL, NULL, 0, m_WindowRects.MenuRect, this, 0, NULL);
    m_pMenuWnd->SetMenu(pMenu);
    m_pMenuWnd->ShowWindow(SW_NORMAL);
}
我在自定义的CFrameWnd的OnSize、OnMove消息处理程序中添加了这个菜单窗口的move处理程序,用于正确的定位

看起来不错。 但当我最小化并恢复它的位置时,菜单窗口的位置只是白色的空白

但若我把光标移到那个里,菜单就在那个里。 我做错了什么? 我查了一下OnCtlColor,但它甚至没有被调用

这是CMENU窗口代码

BEGIN_MESSAGE_MAP(CMenuWindow, CFrameWnd)
ON_WM_CREATE()
ON_WM_ACTIVATE()
ON_WM_KEYUP()
ON_WM_SYSKEYUP()
END_MESSAGE_MAP()


void CMenuWindow::OnDraw(CDC* pDC)
{
CRect clRect;
GetClientRect(&clRect);
}

// CMenuView message handlers
int CMenuWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1;

ModifyStyle(WS_CAPTION, WS_CLIPCHILDREN);
ModifyStyleEx(WS_EX_CLIENTEDGE,0);

return 0;
}

CMenuWindow是什么类型的对象?它看起来像是一个CWnd。如果是,它的代码是什么样子的?谢谢你的回复。CMenuWindow派生自CFrameWnd。