关于OnDraw()函数的两个问题,请高手指点!

smlboy2018 2005-10-03 10:17:28
以下是设置视图背景颜色的代码:

void CTestView::OnDraw(CDC* pDC)
{
 CTestDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 CRect rectClient;
 CBrush brushBkColor;
 GetClientRect(rectClient);
 brushBkColor.CreateSolidBrush(RGB(255,0,0));
 pDC->DPtoLP(rectClient);
 pDC->FillRect(rectClient,&brushBkColor);
 …
}

我有两个问题:

1.我在MSDN中查看了GetClientRect()函数的说明是:void GetClientRect( LPRECT lpRect )const
其中的参数lpRect:Points to a RECT structure or a CRect object to receive the client coordinates. 也就是说,lpRect是一个指向RECT结构或者是一个CRect对象的指针,但是上面的GetClientRect(rectClient)参数是CRect rectClient,而rectClient并不是定义成指针的啊!

2.void DPtoLP(LPRECT lpRect) const;的作用是Converts device units into logical units.This parameter is used for the simple case of converting one rectangle from device points to logical points.能不能具体的说一下是从什么样子的设备坐标转换到什么样子的逻辑坐标?为什么要转换坐标?

谢谢!
...全文
145 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
pomelowu 2005-10-03
1、 From MSDN
A CRect object can be passed as a function parameter wherever a RECT structure, LPCRECT, or LPRECT can be passed.

2、Search MSDN for "About Coordinate Spaces and Transformations"
回复
相关推荐
Android根据TouchEvent来绘图onDraw问题,重绘滞后严重!!
if (Rect.intersects(r, pathInfo.rect))//intersects()判断两个rect区域是否有交集, { mPaint.setColor(pathInfo.color); mPaint.setStrokeWidth(pathInfo.penWidth); } canvas.drawPath(pathInfo.path, mPaint);...
关于 CWnd::OnPaint 和 CView::OnDraw 函数
两个函数到底是何关系? 另外,MSDN中关于OnPaint成员的描述如下: A window may receive internal paint messages as a result of calling the RedrawWindow member function with the RDW_INTERNALPAINT flag ...
在分割窗口下如何控制OnDraw函数向不同的分割区绘制图形?
我的应用程序为单文档、单视图。按如下方式分割为三部分: BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { m_wndSplitter1.CreateStatic... 实在没招了,大家指点,非常感谢!
指针问题!!做指针总结时的心得及发现的问题!!各位大师请指点一二!回者有分
//这地方就获得了CMyDocument对象使用权限,这样就可以在OnDraw函数中为之提供服务了。 ASSET_VALID(pDC); //// TODO: add draw code for native data here } 通过这样的方法,就在没有定义在CMyView类内部定义...
讨论一下MFC绘图的一个问题,怎么切换两个绘图操作
做了两个绘图函数,我的理解的是绘图就要在WM_PAINT的响应函数里面(即OnDraw函数里面)。运行程序时显示出来的是一个绘图函数里面绘制的图,然后点击工具栏上的一个按钮后让窗口绘制另一个函数里面的图。 怎么实现...
题目:视图中的OnDraw问题
此外,如果重写了OnDraw函数程序在开始执行时就会调用OnDraw函数,这时并没有给MoveTo和LineTo这两个函数有效的参数。当程序运行到此处时,出现错误。当然,我们可以通过BOOL型变量来控制OnDraw的动作。这样不更证明...
求大神,我想在两个RadioButton控件间连一条线
求各位大神,指点迷津,在两个控件间画线要怎么实现。 代码如下: class Userview extends View { private Paint uPaint; private Rect user_space; public play plat_istance;//建立一个play类对象 private Canvas ...
Chromium网页GPU光栅化原理分析
在前面一篇文章中,我们分析了网页分块的光栅化过程。根据Chromium的启动选项,网页分块有可能使用GPU来执行光栅化操作,也有可能使用CPU来执行光栅化操作。不管是使用GPU,还是CPU,光栅化操作最终都是统一通过调用...
个关于MFC图象处理的问题(含代码)
我在用MFC编写一程序,以单文档为基础,功能是从文件读取.jpg格式的图片并将它显示在客户区.主要代码如下: 我声明的变量有: CString m_str; //存路径名 IStream* m_pstrm;...望众高手指点错误所在,万分感谢。
个关于MFC图象的代码问题(含代码)
我在用MFC编写一程序,以单文档为基础,功能是从文件读取.jpg格式的图片并将它显示在客户区.主要代码如下: 我声明的变量有: CString m_str; //存路径名 IStream* m_pstrm;...望众高手指点错误所在,万分感谢。
android常见面试题与我自己的回答 (二)
1,android:process 解决访问SharedPreferences,不在同一进程 private SharedPreferencesDB(Context cxt) { this.context = cxt; Context context; try { context = cxt.createPackageContext(cxt....
2016年末,Android岗位BAT等大厂面试题知识点小结(一)Android基础部分
前段时间网上到处都传一比较火的帖子,名叫《2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总》,自己也看了看,发现知识点挺广的,所以试着尽力小结了下,也算是自我学习。对于各种知识点的详细解释,我给出...
个关于MFC图象显示的程序问题(含代码)
我在用MFC编写一程序,以单文档为基础,功能是从文件读取.jpg格式的图片并将它显示在客户区.主要代码如下: 我声明的变量有: CString m_str; //存路径名 IStream* m_pstrm;...望众高手指点错误所在,万分感谢。
【MFC/OpenGL】一有关MFC和OpenGL的菜鸟级问题,在线等………………
现在有两个场景,但是它们的初始化有一点不同。第一个场景是关于网格图形的,需要设置正交投影矩阵;而第二个场景只需要绘制一个立方体,在此基础上做各种渲染,... 如果小弟说的不清楚,会跟帖补充,各位高手指点
个关于StretchBlt和OnPrint的问题
个关于StretchBlt和OnPrint的问题 程序在VC生成的框架中有处修改: 1、在OnPrint()函数中显示一幅图片,使用了StretchBlt函数,希望能够打印出来; 2、OnDraw函数中除了这些文本外,没有其它操作; 遇到的问题: ...
程序员今年必看!!拖更了三年带回了一抖音,虎牙,哔哩哔哩都在用的库|墙裂推荐
欢迎各位大哥指导、指点。 1.Activity生命周期(这是必问的) onCreate() 创建活动,做一些数据初始化操作 onStart() 由不可见变为可见 onResume() 可以与用户进行交互,位于栈顶 onPause() 暂停,启动或恢复另一...
学VC的迷惑!各位大虾能否指点一二!
小弟5月份看完C++,六月份开始看VC++技术内幕一直到现在,两个星期过去了,但只看了前面三章,大家也知道前面三章讲的什么,看快点一天都看完了,但我自己感觉看完后脑子里一片空白,所以就反复反复的看!...
多文档View编写问题!!!
是昨天小弟编写了一个多文档程序,结果编译时无错误: 我利用MFC新建了两个新类,结果运行时出现其中一个类中的Ondraw()函数不执行,中 可另一个类中Ondraw()能够执行,我一直困迷不解,请高手指点!...
关于ScrollDC产生的更新区域的问题
最近学习写一程序,其中一基本的操作就是图像的水平移动,我采用了双缓冲和ScrollDC来解决这个问题. 在内存DC上先用ScrollDC把图像移动后在拷贝到屏幕上,对于ScrollDC这个函数,我理解并不深,... 大家指点!
Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+...
Y的,省的说我传的代码不能用 最近一直在审视以前做过的东西,关于android摄像头预览,预览界面上呈现矩形框,在前文(Android开发 摄像头SurfaceView预览 背景带矩形框 实现(原理:双surfaceview,顶层画矩形框,...
请问vc++中ondraw和onopenfile的联系
初学vc,对里面的很多东西都不是很懂,我现在准备在打开对话框里面选择一副BMP图片打开并显示出来, 这是一部分主要的代码 void CDrawTestDoc::OnFileOpen() { // TODO: Add your ... 大家指点一下,不胜感激!!
关于MFC绘图问题求助
不知道原因在哪里,各位高手指点指点,先谢了. 我的实现方式:1.MFC/SDI 2.在View头文件中定义了两种结构,分别是点和弧结构 3.在View的实现文件中定义了两个全局动态数组.在View的构造函数中读文本文件,生成两种数据...
用MFC做Active控件碰到的一个问题
我用MFC Active向导做一个时间显示控件,其中有两个属性,一是Left(控件左边与容器左边的距离) 和Top(控件上边与容器上边的距离)... 但在测试程序中显示Left和Top属性值都是-858993460,不知道为什么,请高手指点!
QRegExp的详细解析
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的替换更强大。
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer) 具体见博文:http://blog.csdn.net/zzzwwwppp11199988899/article/details/78131292
初级学习ArcGIS Engine视频课程
全局讲解ArcGIS Engine开发课程,初级学习 学会ArcGIS Engine 二次开发
MSP430_RTC模块学习总结
这是自己在学习MSP430时,对RTC模块的总结,希望可以帮助刚入门者
CIET-2019-0504 数据中心运维管理人才标准.pdf
数据中心运维管理,人才标准,欢迎查看共同学习。
《高效能人士的七个习惯》(英文版).pdf
《高效能人士的七个习惯》(英文版).pdf很不错的一本书~~~~~~~~~~~
C语言及程序设计初步
课程针对没有任何程序设计基础的初学者,全面介绍C语言及利用C语言进行程序设计的方法。课程注重知识的传授,更关注学习者能够通过实践的方式,真正学会利用C语言解决问题,奠定程序设计的基础。为此,专门设计了实践方案,指导学习者在听讲的同时,有效完成实践。讲课中还适时穿插进行学习指导,帮助初学者尽快掌握程序设计的学习方法。 课程主要针对无任何编程经历的初学者,利用主讲者多年来教授大一学生的教学经验,准确把握知识点掌握中的难点,在和视频配套的实践方案配合下,帮助初学者顺利掌握知识,获得学习中的自信。
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-10-03 10:17
社区公告
暂无公告