社区
C++ 语言
帖子详情
OnDraw(CDC* PDC)问题
cofemate
2009-12-04 09:44:49
问下高手OnDraw(CDC* PDC)在被调时很多书上都说(CDC* PDC)这个参数已经传进来了,小弟我没明白这个参数是怎么传进来的? 看MFC中还有很多这样的函数,他们后面跟的参数都是直接可以拿到函数体中使用的(特别是一些类的对象的指针这样的参数)。 为什么OnDraw(CDC* PDC)这个函数 不先定义一个CDC类的对象 dc ,然后OnDraw(&dc)??
...全文
364
10
打赏
收藏
OnDraw(CDC* PDC)问题
问下高手OnDraw(CDC* PDC)在被调时很多书上都说(CDC* PDC)这个参数已经传进来了,小弟我没明白这个参数是怎么传进来的? 看MFC中还有很多这样的函数,他们后面跟的参数都是直接可以拿到函数体中使用的(特别是一些类的对象的指针这样的参数)。 为什么OnDraw(CDC* PDC)这个函数 不先定义一个CDC类的对象 dc ,然后OnDraw(&dc)??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cofemate
2009-12-04
打赏
举报
回复
结贴了 :)
cofemate
2009-12-04
打赏
举报
回复
找到了 谢谢楼上的朋友
xylicon
2009-12-04
打赏
举报
回复
[Quote=引用 7 楼 cofemate 的回复:]
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
在哪里可以找到啊?小弟愚笨,望指点
[/Quote]
\Microsoft Visual Studio\VC98\MFC\SRC\ViewCore.cpp
cofemate
2009-12-04
打赏
举报
回复
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
在哪里可以找到啊?小弟愚笨,望指点
xylicon
2009-12-04
打赏
举报
回复
OnDraw 是由OnPaint调用的。
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
OnDraw是虚函数,所以就能够在你的派生类中执行OnDraw了。
bamboo1999
2009-12-04
打赏
举报
回复
是mfc构造(或者说取到的)的。
调用者负责传入合法的参数。
cattycat
2009-12-04
打赏
举报
回复
up loaden,我也不知道回调函数在哪,这个可能得看mfc的消息机制吧, DECLARE_MASSAGE_MAP下面声明的函数On_Draw()原型,顺着这个往上找吧。
cofemate
2009-12-04
打赏
举报
回复
回调函数里已经构造了一个CDC对象。老邓能说具体点么?回调函数代码在什么地方我去看下
「已注销」
2009-12-04
打赏
举报
回复
为什么OnDraw(CDC* PDC)这个函数 不先定义一个CDC类的对象 dc ,然后OnDraw(&dc)??
==============
在消息派发的时候,回调函数里已经构造了一个CDC对象。
因为消息要发送到不同的类,而且是多次,所以传递进去一个指针。
这样就不用重复构造对象,提高效率(而且你也构造不成,因为只能在回调函数里构造,里面有构造CDC的信息)。
「已注销」
2009-12-04
打赏
举报
回复
因为传递进去的是一个指针。
MFC俄罗斯方块包括方块类
void DeleteLine(
CDC
*
pDC
, int LineNum, bool start); // 游戏是否结束,true=结束了 bool BlockGameOver(void); // 计分板 //del是决定是否是已消一行的 void BlockScore(int del,
CDC
*
pDC
); //返回是否...
VC++ 画线
cdc
virtual void
OnDraw
(
CDC
*
pDC
); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void ...
双缓冲绘图实现图片查看格式转换器
基于MFC单文档的图片查看格式转换器 ...3、改造
OnDraw
(
CDC
*
pDC
)函数 4、在CPicZoomView类添加鼠标各类消息跟事件消息响应 PS:双缓冲绘图为两步:一是创建内存DC,二是重写OnEraseBkgnd(
CDC
*
pDC
)函数。
基于MFC的开发项目中出现的闪屏
问题
的解决方案
* 解决闪屏
问题
的方法:重载 OnEraseBkgnd(
CDC
*
pDC
)函数,返回 TRUE,并在
OnDraw
()函数中直接绘图。 * OnEraseBkgnd(
CDC
*
pDC
)函数的作用:告诉 MFC 不要进行背景绘制,解决闪屏
问题
。 *
OnDraw
()函数的...
CDC
.rar_MFC_MFC文本输出
在Windows平台上,应用程序的图形设备接口(graphics device interface,GDI)被抽象为设备上下文(Device Context,DC)。 在微软基类库MFC中,
CDC
类是定义设备上...void CTestView::
OnDraw
(
CDC
*
pDC
)函数中实现。
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章