请教一个函数调用的问题

vcstudy3000 2005-11-29 05:38:04
本人刚开始学VC,在看《vc技术内幕》,有一个问题不太理解
void CEx03aView::OnDraw(CDC* pDC)
{
pDC->TextOut(0, 0, "Hello, world!"); // prints in default font
// & size, top left corner
pDC->SelectStockObject(GRAY_BRUSH); // selects a brush for the
// circle interior
pDC->Ellipse(CRect(0, 20, 100, 120)); // draws a gray circle
// 100 units in diameter
}
一。为什么函数定义时用CDC* pDC而不是CDC pDC呢?如果用CDC pDC是否可以呢?
二。 pDC是指针,为什么可以调用类的函数呢?为什么是pDC->TextOut(0, 0, "Hello, world!");
而不是*pDC->TextOut(0, 0, "Hello, world!"); 呢?
小弟刚开始学,还希望大虾多多指点,能详细通俗一点
thanks
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2005-11-29
  • 打赏
  • 举报
回复
void CEx03aView::OnDraw(CDC* pDC)
MFC写死的
j805 2005-11-29
  • 打赏
  • 举报
回复
不可筑高台于浮沙之上.
j805 2005-11-29
  • 打赏
  • 举报
回复
好好学学C++
pt2519515 2005-11-29
  • 打赏
  • 举报
回复
1、学好C;
2、再学C++;
3、用使用VC。

建议你进行第一步。
oyljerry 2005-11-29
  • 打赏
  • 举报
回复
MFC传入的参数为指针,调用函数就用->了
快乐鹦鹉 2005-11-29
  • 打赏
  • 举报
回复
void CEx03aView::OnDraw(CDC* pDC)
这个函数不是你造的,是从基类派生下来的,是MFC规定死的,参数类型不能更改。

二。 pDC是指针,为什么可以调用类的函数呢?为什么是pDC->TextOut(0, 0, "Hello, world!");
而不是*pDC->TextOut(0, 0, "Hello, world!"); 呢?
==pDC->即代表了指针指向的实例对象了,自然可以调用函数了。
hushuangyan74 2005-11-29
  • 打赏
  • 举报
回复
对不起,讲错了,应该说:
pDC->TextOut(0, 0, "Hello, world!");
和(*pDC).TextOut(0, 0, "Hello, world!");是一样的!
hushuangyan74 2005-11-29
  • 打赏
  • 举报
回复
你先把指针学一下,
pDC->TextOut(0, 0, "Hello, world!");
和*pDC.TextOut(0, 0, "Hello, world!");是一样的!
thisisll 2005-11-29
  • 打赏
  • 举报
回复
DC是怎么得到的?
当然不是你去得到的
是程序给你的
所以在你的函数里你只有指针

关于指针你还是看看基础的书吧
几乎所有的C++书都能解决你的问题

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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