为什么我在OnPaint()中使用CPaintDC没有用?什么也没改变

ftkghost 2006-06-17 02:39:50
void CMainFrame::OnPaint()
{
CPaintDC dc(this); // device context for painting
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 400;
rect.bottom = 400;
dc.Draw3dRect(&rect, (COLORREF)0xff0000, (COLORREF)0x0000ff);
}

在视图类中OnPaint()函数下写这段代码没用,在主框架的OnPaint()中也没有用.

望高手解惑!谢谢~
...全文
251 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftkghost 2006-06-18
  • 打赏
  • 举报
回复
现在能画出来了,请问OnDraw和OnPaint有什么区别?
为什么我在View中加入OnPaint响应WM_PAINT后,OnDraw中的代码就不执行了?
昊叔 2006-06-18
  • 打赏
  • 举报
回复
OnPaint()里面默认调用onDraw()
onDraw()是给onPaint()和onprint调用的
MFC源码大致是这样的:
CView::onpaint()
{
CpaintDC dc(this);
ondraw(&dc);
}
lisypro 2006-06-18
  • 打赏
  • 举报
回复
楼上正解
gdsdyl 2006-06-17
  • 打赏
  • 举报
回复
你如果采用其文档-视的构架的话,view通常是在Frame的上方的,也就是说View是覆盖在Frame之上的.Frame虽然画了矩形框,但仍然看不到.所以要画的话还是画在View上.
void CYourView::OnPaint()
{
CPaintDC dc(this); // device context for painting
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 400;
rect.bottom = 400;
dc.Draw3dRect(&rect, (COLORREF)0xff0000, (COLORREF)0x0000ff);
}
//就ok了!
ftkghost 2006-06-17
  • 打赏
  • 举报
回复
现在能画出来了,请问OnDraw和OnPaint有什么区别?
我在View中加入OnPaint响应WM_PAINT后,OnDraw中的代码就不执行了
ftkghost 2006-06-17
  • 打赏
  • 举报
回复
那为什么我在视图类的OnPaint()中使用也是什么都没发生??
昊叔 2006-06-17
  • 打赏
  • 举报
回复
你直接用
CMainFrame不用MVC估计没问题,
昊叔 2006-06-17
  • 打赏
  • 举报
回复
CMainFrame::OnPaint() 绘制他自己的窗口,但它的窗口上view覆盖

15,979

社区成员

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

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