在view的Create里创建了一个对话框,但是很闪~请问怎么解决?

ATMCash4423 2012-03-05 04:01:05
我创建一个单文档程序,我添加了一个对话框资源Cdlg,然后在view类的OnCreate方法里创建了一个非模态对话框。

但是有个问题,显示是能显示出来,就是在改变窗口大小的时候,可能是由于刷新,导致显示的那个对话框不停地闪。

(注,只有在改变窗口大小的过程中才闪,不改变不闪)

我该怎么解决这问题啊?

是否也可以不在view类中创建对话框?如果能,那在哪创建啊?
在窗口类中么?那不是创建出来也被view类覆盖了么~
...全文
133 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2012-12-24
  • 打赏
  • 举报
回复
学习 了 。。。。。。。
向立天 2012-03-08
  • 打赏
  • 举报
回复
这种东西你可以用FormView
wltg2001 2012-03-08
  • 打赏
  • 举报
回复
这个可以拆分视图,普通视图加CFormView
向立天 2012-03-07
  • 打赏
  • 举报
回复
处理OnErasBkgnd应该可以解决
处理MainFrame和CChildView试试
ATMCash4423 2012-03-07
  • 打赏
  • 举报
回复
这是我邮箱,传给我也行啊!libin4423@163.com
ATMCash4423 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xianglitian 的回复:]
处理OnErasBkgnd应该可以解决
处理MainFrame和CChildView试试
[/Quote]

BOOL Cview1::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default

return true;//CView::OnEraseBkgnd(pDC);
}

这样果然好多了~

但是我想是不是因为Cview(继承于CView)类根本就不能用来显示对话框,所以才这么闪的?
那如果不在CVIEW类中显示对话框那能在哪里显示啊?

能否帮我传一个单文档结构,左边是一个CTreeView,右上边是一个对话框,右下边是一个Cview的工程??
多谢啊!!我想学学单文档结构的程序!!谢谢!!
wltg2001 2012-03-06
  • 打赏
  • 举报
回复
不知道你是如何写的,正常情况下,在Create中创建和在OnCreate中创建应该都不会闪才对,改变大小只会触发WM_PAINT消息,不会造成非模态对话框闪烁有。
fthislife 2012-03-06
  • 打赏
  • 举报
回复
重载OnInitialUpdate()虚函数,在里面创建
诶呦 2012-03-06
  • 打赏
  • 举报
回复
在内存dc中绘制完图,然后再贴上去,可以解决一部分,然后视情况而定
ATMCash4423 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fthislife 的回复:]
重载OnInitialUpdate()虚函数,在里面创建
[/Quote]

我这个view继承自CWnd,类向导里没有OnInitialUpdate()啊。

[Quote=引用 4 楼 wltg2001 的回复:]
不知道你是如何写的,正常情况下,在Create中创建和在OnCreate中创建应该都不会闪才对,改变大小只会触发WM_PAINT消息,不会造成非模态对话框闪烁有。
[/Quote]

我创建单文档时去掉了 文档视图支持,
所以CChildView 的基类是CWnd

我添加了一个对话框,并添加了相应的类
然后

int CChildView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: 在此添加您专用的创建代码
dlg1.Create(IDD_DIALOG1,this);//就加了这么两行代码
dlg1.ShowWindow(true);

return 0;
}


程序运行时只要不停的改变整个窗体大小,对话框就会闪的很严重,不改变不闪~
ATMCash4423 2012-03-06
  • 打赏
  • 举报
回复
怎么没人啊?自己顶!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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