奇怪,为什么小弟我按照网上的隐藏视图的法子实验了一下,结果不管用
奇怪,为什么我按照网上的隐藏视图的法子实验了一下,结果不管用?void CMainFrame::OnContextMenu(CWnd*pWnd
奇怪,为什么我按照网上的隐藏视图的法子实验了一下,结果不管用?
void CMainFrame::OnContextMenu(CWnd*pWnd, CPoint point)
{
CsssView* pActive=(CsssView*)GetActiveView();
ASSERT(pActive);
pActive->ShowWindow(SW_HIDE);
}
http://blog.sina.com.cn/s/blog_49b531af0102dtpi.html
这文章里有这么几句代码:
SetActiveView(pNewActiveView); //改变活动的视图
pNewActiveView->ShowWindow(SW_SHOWMAXIMIZED); //显示新的视图
pOldActiveView->ShowWindow(SW_HIDE); //隐藏旧的视图
说明showwindow可以隐藏视图啊,所以我验证一下,结果。。。
[解决办法]你怎么知道 不 管用?
在 MainFrame OnPaint 中:
{
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
dc.FillSolidRect(&rc,RGB(0,0,0));
}
这样 CMainFrame::OnContextMenu (在 toolbar 附近 R点击)
mainFrame 变黑 的 了。
另外 OnRButtonDown()现在 也 起作用了。
sdi 中 mainframe 实际上 是 被 View 覆盖的。
但 view hide 后 mainframe 没 刷新 动作。