使用CSplitterWnd时切换View出现的闪屏

bjliuqi 2008-12-28 12:34:49
用VC6默认创建的带有CSplitterWnd的工程中有一段代码用CSplitterWnd来创建View,但是这样有一个问题,每次创建新窗口的时候,都会有闪屏出现。我看了网上相关帖子的讨论,发现很多人都是因为画背景色导致的,我觉得出现这个的原因应该是CSplitterWnd来创建View导致的,具体的请大家指点一下。

BOOL CChildFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
return m_wndSplitter.Create( this,
2, 2, // TODO: adjust the number of rows, columns
CSize( 10, 10 ), // TODO: adjust the minimum pane size
pContext );
}

另外, 我切换不同的View的时候也会出现闪屏。
代码是:
tcf->MDIActivate(); //tcf是CChildFrame的指针。

谢谢!
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuqibj 2008-12-29
  • 打赏
  • 举报
回复
cs.style |= WS_MAXIMIZE;
kaidiligent0 2008-12-28
  • 打赏
  • 举报
回复
进来学习了,谢谢啊,
bjliuqi 2008-12-28
  • 打赏
  • 举报
回复
我发现这是因为我把窗口最大化导致的。 最大化之后,如果再创建子窗口,就会先生成一个默认大小的窗口,然后最大化导致闪屏。
有人知道函数Create()怎么创建一个最大化的窗口么?
BOOL Create( CWnd* pParentWnd, int nMaxRows, int nMaxCols, SIZE sizeMin, CCreateContext* pContext, DWORD dwStyle = WS_CHILD | WS_VISIBLE |WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT, UINT nID = AFX_IDW_PANE_FIRST );

我在函数中加了WS_MAXIMIZE,就会出错。

[Quote=引用 2 楼 Chiyer 的回复:]
创建view的代码呢? 还有,你的切换view是怎么切换的?操作和代码
[/Quote]
星羽 2008-12-28
  • 打赏
  • 举报
回复
创建view的代码呢? 还有,你的切换view是怎么切换的?操作和代码
hityct1 2008-12-28
  • 打赏
  • 举报
回复
mark

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧