社区
界面
帖子详情
CWnd的子类OnDraw问题?
guxue365
2014-04-16 11:42:56
我有一个从CWnd的子类。
里面在头文件中声明:virtual void OnDraw(CDC* pDC);
在cpp中实现:
void CXXX::OnDraw(CDC* pDC)
{
pDC->MoveTo(0,0);
pDC->LineTo(200,200);
}
再将此类子类化到工程里的View中,可是运行时并不现实出画线。
但是我重载CXXX的OnPait函数时画线可以成功,不知为什么?
...全文
155
11
打赏
收藏
CWnd的子类OnDraw问题?
我有一个从CWnd的子类。 里面在头文件中声明:virtual void OnDraw(CDC* pDC); 在cpp中实现: void CXXX::OnDraw(CDC* pDC) { pDC->MoveTo(0,0); pDC->LineTo(200,200); } 再将此类子类化到工程里的View中,可是运行时并不现实出画线。 但是我重载CXXX的OnPait函数时画线可以成功,不知为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
向立天
2014-05-17
打赏
举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了
疑难问题汇总帖
并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面
界面版关于版主结帖工作的具体办法
worldy
2014-04-17
打赏
举报
回复
CWnd里使用OnPaint
gz_qmc
2014-04-17
打赏
举报
回复
CView类也是从CWnd类来 他们实际的消息绘图函数是OnPaint() 由于CView类是这样使用的 void CView::OnPaint() { CPaintDC dc(this); OnDraw(&dc); } virtual void CView::OnDraw(CDC* pDC) { } 只是封装了你看不见而已 所以,你要用CWnd自己弄,同样在OnPaint里调用OnDraw即可
zhouxiaofeng1021
2014-04-17
打赏
举报
回复
void CObjectView::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 CRect rectTree; m_wndObjectView.GetWindowRect(rectTree); ScreenToClient(rectTree); rectTree.InflateRect(1, 1); dc.Draw3dRect(rectTree, afxGlobalData.clrBarHilite, afxGlobalData.clrBarShadow); CDockablePane ::OnPaint(); } 这是我写的
zgl7903
2014-04-17
打赏
举报
回复
添加WM_PAINT响应
schlafenhamster
2014-04-16
打赏
举报
回复
WM_DRAWITEM_
REFLECT
反射 消息 叫 控件 自己 画
叶恭介叶恭介
2014-04-16
打赏
举报
回复
应该要继承OnPaint()吧
微型蚂蚁
2014-04-16
打赏
举报
回复
因为CWnd里没有virtual void OnDraw(CDC* pDC);函数,不会调用到OnDraw. Cview里定义了virtual void OnDraw(CDC* pDC);在OnPaint中会调用OnDraw
昨夜无风
2014-04-16
打赏
举报
回复
类子类化到工程里的View中? 你是怎么子类化的?
rxguoblp
2014-04-16
打赏
举报
回复
CWnd里没有virtual void OnDraw(CDC* pDC)函数的声明和实现,无法继承。
rxguoblp
2014-04-16
打赏
举报
回复
试试从CView派生你的子类,不是CWnd
VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:
2.
子类
化子元素,或者为子元素准备一个新的类(一般来说该类必须继承于MFC封装的某个标准类,如:CButton)。在该子元素里,截获自身的或者从父窗口反射过来的关于界面绘制的消息。譬如:用户可以创建一个CXPButton类...
CWnd
::OnPaint & CView::
OnDraw
CWnd
::OnPaint afx_msg void OnPaint( ); Remarks The framework calls this member function when Windows or an application makes a request to repaint a portion of an application’s window. ...
OnDraw
和OnPaint的区别
(1)CView类是由
CWnd
类派生而来的,
OnDraw
是CView类的虚函数,OnPaint是
CWnd
的类成员函数,负责相应WM_PAINT消息。 (2)一般是这样:窗口发出一个WM_PAINT消息,OnPaint函数响应这个消息,然后这个函数再调用...
MFC中的一般经验之谈3
Window消息可以分为三类:(1)标准Window消息(
CWnd
子类
处理),(2)控制通知消息(
CWnd
子类
处理),(3)命令消息(应用中的5类都可以)。所有派生自CCmdObjec对象的类都可以处理Windows消息。 (1)前缀以...
关于MFC中的OnPaint和
OnDraw
当窗口发生改变后,会产生无效区域,这个无效的区域需要重画。 一般Windows会发送两个消息WM_PAINT(通知...这就需要
OnDraw
()或OnPaint()来重画窗口。 CView类派生自
CWnd
类。而OnPaint()是
CWnd
的类成员,同时...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章