CDC,CClientDC都是什么意思啊???

苏克贝塔03 2010-07-14 04:20:01
我写的画线函数,可为什么总是提示说:The variable 'pDC' is being used without being defined.(运行时错误)

void CSy5View::drawline(CDC* pDC,int x1, int y1, int x2, int y2)
{
pDC->MoveTo(x1,y1);
pDC->LineTo(x2,y2);
}



...全文
147 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
_JeffreyWu 2010-07-15
指针没有分配内存
  • 打赏
  • 举报
回复
lvyexian 2010-07-15
CDC* pDC只是定义,但pDC本质是个变量,所有变量都要初始化后才能使用,

你可以把CDC *pDC=GetDC()看成是初始化pDC。
  • 打赏
  • 举报
回复
苏克贝塔03 2010-07-15
都是强人啊。。呵呵
  • 打赏
  • 举报
回复
黑泡泡选手 2010-07-14
对,是这样的,必须初始化,再使用,我上面说错了额,Platform SDK的 ::GetDC(hWnd)函数是返回一个dc句柄
  • 打赏
  • 举报
回复
LRYIVAN 2010-07-14
一时手快,写错了,上面有一句应该是
MemDC.CreateCompatibleDC(pDC);
  • 打赏
  • 举报
回复
LRYIVAN 2010-07-14
一个指针声明了,并不是就是定义了,必须要为他分配空间才行

一般如果是屏幕DC:
CDC *pDC=GetDC();

如果是内存DC,

CDC MemDC;
ImageDC.CreateCompatibleDC(pDC);

内存DC一般是为了防止直接画在屏幕DC上,造成屏幕的闪烁感,所以要选一个中间的画布
MemDC闪烁时,屏幕看不见
  • 打赏
  • 举报
回复
黑泡泡选手 2010-07-14
如果你放在OnDraw函数中把pDC,传进去就没问题了
  • 打赏
  • 举报
回复
黑泡泡选手 2010-07-14
[Quote=引用 5 楼 jichao1010 的回复:]
引用 2 楼 worcy_kiddy 的回复:
pDC没有定义就使用了。。。

CDC *pDC;
在这不是定义了吗?
能说具体一点吗?
[/Quote]

GetDC()函数是获得显示上下文的一个句柄,返回设备句柄,初始化pDC。。。
  • 打赏
  • 举报
回复
Eleven 2010-07-14
[Quote=引用 5 楼 jichao1010 的回复:]
引用 2 楼 worcy_kiddy 的回复:
pDC没有定义就使用了。。。

CDC *pDC;
在这不是定义了吗?
能说具体一点吗?
[/Quote]
囧,CDC* pDC = GetDC();
  • 打赏
  • 举报
回复
苏克贝塔03 2010-07-14
[Quote=引用 2 楼 worcy_kiddy 的回复:]
pDC没有定义就使用了。。。
[/Quote]
CDC *pDC;
在这不是定义了吗?
能说具体一点吗?

  • 打赏
  • 举报
回复
fishion 2010-07-14

CDC *pDC=GetDC()
  • 打赏
  • 举报
回复
codecola 2010-07-14
CDC *pDC=this->GetDC();
  • 打赏
  • 举报
回复
黑泡泡选手 2010-07-14
pDC没有定义就使用了。。。
  • 打赏
  • 举报
回复
苏克贝塔03 2010-07-14


void CGraphic2View::drawline(CDC *pDC,int x1 ,int y1,int x2,int y2)
{
pDC->MoveTo(x1,y1);
pDC->LineTo(x2,y2);
}


void CGraphic2View::OnHuaxian()
{
// TODO: 在此添加命令处理程序代码
CDC *pDC;
drawline(pDC,m_beging.x,m_beging.y,m_end.x,m_end.y);

}
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-07-14 04:20
社区公告

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