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);
}



...全文
204 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
老吴笔记 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);

}

16,548

社区成员

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

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

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