在么实现MSN的"Show the menu bar"类似的功能?
cppgp 2008-12-25 12:52:51 MSN 的 登录界面上,在右上角部位友个下拉式菜单按钮。其中最后一项是”Show the menu bar”(我用的 Version 8.1 英文)。点击以后在客户区外部出现标题栏和系统菜单栏。并且下拉式按钮不再弹出菜单,点击时仅仅隐藏标题栏和菜单栏。
我的问题是:在整个过程中MSN客户区没有闪烁、位置没有变化。这个是怎么做到的呢?是真的把标题栏和菜单栏隐藏起来了还是采用某种透明化技术?我的方案如下,但是有闪烁。我在初始化时设置不显示菜单栏标题栏。然后选择点鼠标右键时显示/隐藏。该部分代码如下:
static bool bNeedShow = true;
if ( bNeedShow )
{
AfxGetMainWnd()->SetWindowPos(
&wndNoTopMost,
150-GetSystemMetrics(SM_CYBORDER),
150-GetSystemMetrics(SM_CYCAPTION)-GetSystemMetrics(SM_CYBORDER),
300,
600,
0
);
AfxGetMainWnd()->ModifyStyle(0,WS_CAPTION|WS_BORDER,SWP_DRAWFRAME);
}
else
{
AfxGetMainWnd()->SetWindowPos(
&wndNoTopMost,
150,
150,
300,
600,
0
);
AfxGetMainWnd()->ModifyStyle(WS_CAPTION|WS_BORDER,0,SWP_DRAWFRAME);
}
bNeedShow = !bNeedShow;
位置没发生变化,但是有客户区有闪烁。在么消除呢?
我第一次提问,不知道描述清楚问题了没。首先感谢大家的帮助!