首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

单文档视图全屏切换时闪耀

2013-07-01 
单文档视图全屏切换时闪烁本帖最后由 VisualEleven 于 2013-06-18 16:40:23 编辑如何解决单文档视图全屏切

单文档视图全屏切换时闪烁
本帖最后由 VisualEleven 于 2013-06-18 16:40:23 编辑 如何解决单文档视图全屏切换时的闪烁问题,
//设置窗口全屏

void CMainFrame::FullScreenModeOn()
{

//隐藏菜单栏
SetMenu(NULL);
// 去除主窗口的标题
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style&=~WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);

//得到当前系统的分辨率
HDC hdc = ::GetDC(NULL);   //获得屏幕设备描述表句柄; 
int screenx=GetDeviceCaps(hdc,HORZRES);   //获取屏幕水平分辨率;  
int screeny=GetDeviceCaps(hdc,VERTRES);     //获取屏幕垂直分辨率; 
// 全屏显示
SetWindowPos(NULL,-8,-8,screenx+20,screeny+20,SWP_NOZORDER);

style=::GetWindowLong(this->m_hWnd,GWL_STYLE);

}

在视图里调用全屏的函数
void CCarAssistantView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();

CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd; //获取主窗口指针
pMain->FullScreenModeOn();//调用全屏函数
}


这样会出现闪烁的问题,请问这个问题该如何解决
[解决办法]
在CCarAssistantView里响应WM_SIZE函数,在里面加一句试试:Invalidate(FALSE);
[解决办法]
放到CMainFrame类的ActivateFrame函数中试试。
void CMainFrame::ActivateFrame(int nCmdShow); 
[解决办法]
“视图全屏切换时的闪烁”
快速切换,必然闪烁

热点排行