对话框拖动 控件为什么消失了?如何解决

jenryyang 2010-04-01 09:10:59
rt
对话框被覆盖 或者拖动之后 上面的控件消失了,
拖动后屏幕上留下多个界面。
请问如何解决?
...全文
310 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Swkjd 2010-04-04
  • 打赏
  • 举报
回复
CPaintDC dc();改成CPaintDC dc(&控件控制变量);并且放到OnPaint()里,不要放在DisplayMyData()里。

不过CDC* pDC = pDCShow;要不要改成CDC* pDC = 控件控制变量.GetDC();试试?
向立天 2010-04-02
  • 打赏
  • 举报
回复
你这么用是不对的
你可以按我说的试一下
如果你要用控件的dc就应该在控件的OnPaint里画
也不应该在父窗口中调用子窗口的dc
jenryyang 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xianglitian 的回复:]
pDCShow是什么?

CPaintDC dc();
这句应该写成
CPaintDC dc(this);

而且应该用dc进行绘制
也就是说
pDC->GetSafeHdc()
应该用
dc.GetSafeHdc()
替换
[/Quote]

pDCShow是显示图片的控件dc 必须在那上面画啊
向立天 2010-04-02
  • 打赏
  • 举报
回复
pDCShow是什么?

CPaintDC dc();
这句应该写成
CPaintDC dc(this);

而且应该用dc进行绘制
也就是说
pDC->GetSafeHdc()
应该用
dc.GetSafeHdc()
替换
jenryyang 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xianglitian 的回复:]
图片怎么画上去的?
是用static控件还是直接在OnPaint里画的?
建议直接在OnPaint里绘制
[/Quote]

图片是在OnPaint()里绘制的 显示在控件上

void MyDlg::OnPaint()
{
DisplayMyData();
CDialog::OnPaint();
}

void MyDlg::DisplayMyData()
{
CPaintDC dc();
CDC* pDC = pDCShow;
int res = StretchDIBits(
pDC->GetSafeHdc(),
0,
0,
int(TheImage->width),
int(TheImage->height),
0,
0,
TheImage->width,
TheImage->height,
TheImage->imageData,
(BITMAPINFO*)bmi,
DIB_RGB_COLORS,
SRCCOPY);
}

窗口切换应该能引起重绘吧 为什么不显示?
向立天 2010-04-02
  • 打赏
  • 举报
回复
图片怎么画上去的?
是用static控件还是直接在OnPaint里画的?
建议直接在OnPaint里绘制
jenryyang 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
拖动后屏幕上留下多个界面
========================
你不是下钩子了吧?
[/Quote]

这个问题解决了 就是界面切换时 对话框上的图片消失了 不知道怎么弄?
jenryyang 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]
不是吧,你的控件时动态生成的,还是直接在资源编辑器上拖上去的呢?
[/Quote]

不是动态生成的 拖上去的
向立天 2010-04-02
  • 打赏
  • 举报
回复
拖动后屏幕上留下多个界面
========================
你不是下钩子了吧?
Eleven 2010-04-02
  • 打赏
  • 举报
回复
不是吧,你的控件时动态生成的,还是直接在资源编辑器上拖上去的呢?
jenryyang 2010-04-02
  • 打赏
  • 举报
回复
绘制代码是在OnPaint()里写的 界面切换后原图就消失了 拖动窗口的时候没有问题
小南 2010-04-02
  • 打赏
  • 举报
回复
重绘为题吧 窗口改变需要重绘的
Gushleo 2010-04-01
  • 打赏
  • 举报
回复
是不是你显卡有问题?

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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