CDockablePane的隐藏显示问题

buaaxiao buaaxiao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
求助:我想要在MDI主框架的底部显示一个工具条,按F11的时候工具条交替显示或隐藏,即按F11时,如果工具条已隐藏则显示出来,如果已显示则隐藏起来,但是要求工具条是固定的,即显示的时候不能通过非按F11的途径隐藏掉,隐藏的时候也不能通过非按F11的途径显示出来
创建工具条:

if (!m_CYBDockablePane.Create(
_T(""),
this,
CRect(0, 0, 10, 25),
FALSE,
IDD_DIALOG_FORMVIEW,
WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_HIDE_INPLACE| AFX_CBRS_FLOAT , AFX_CBRS_REGULAR_TABS, AFX_CBRS_CLOSE))
{
TRACE0("未能创建输出窗口/n");
return FALSE;
}

DockPane(&m_CYBDockablePane);



F11的响应应该隐藏/显示工具条呢?我的代码如下:

BOOL CYBBrowserApp::PreTranslateMessage(MSG* pMsg)
{
if(VK_F11 == pMsg->wParam && WM_KEYDOWN == pMsg->message)
{
if(!iShow)
{
iShow = 1;
((CMainFrame*)AfxGetApp()->m_pMainWnd)->m_CYBDockablePane.SetAutoHideMode(true, CBRS_ALIGN_BOTTOM);
((CMainFrame*)AfxGetApp()->m_pMainWnd)->m_CYBDockablePane.ShowPane(TRUE,FALSE,TRUE);
}
else
{
iShow = 0;
((CMainFrame*)AfxGetApp()->m_pMainWnd)->m_CYBDockablePane.SetAutoHideMode(true, CBRS_ALIGN_BOTTOM);
((CMainFrame*)AfxGetApp()->m_pMainWnd)->m_CYBDockablePane.ShowPane(FALSE,FALSE,TRUE);
}
}

return CWinAppEx::PreTranslateMessage(pMsg);
}


问题是现在按F11的时候,隐藏掉工具条的时候把鼠标移动到屏幕左下方,工具条又出来了,显示工具条的时候,单击客户区域,工具条隐藏起来了。
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
buaaxiao
界面 15,976 成员 115,866 内容