作者aecho (星空下的鲔鱼)
看板C_and_CPP
标题Re: [问题] CDC该怎麽用 ~"~
时间Wed Jun 3 05:51:26 2009
※ 引述《lovec (。口亨。)》之铭言:
: << 环境 : MFC >>
: 我自己开了一个Class叫做 S.cpp,
: 我想在 S.cpp 里画图,
: 过去都是在 View.cpp 里的 OnDraw 下画图,
: 现在不知道该怎样才能在自己的Class里画,
: 学长跟我说,
: 用CDC宣告一个物件去承接 View 里面的指标,
: 可是...
: 我真的看不懂 -______-|||,
: 我在 S.cpp 的Function里CDC *pDC,
: 再 pDC->MoveTo(x,y); pDC->LineTo(x1,y1);
: 虽然是 0 error,
: 但是会当 囧",
: 看样子是接错了,
: 可以请问大家到底该怎样接吗 ~"~
OnDraw那边的的dc的pointer,不能背下来给其它地方用
那边一旦离开了OnDraw,就没用了。
在View其它的地方可以用 CClient dc(this)取得dc
或是用CDC *pDC = GetDC(), 然後用完後ReleaseDC(pDC);
要减少闪烁的话,可以研究一下memory dc。
CClient dc(this)和GetDC()的差别在他们发生错误时,
行为不一样。一个是丢出exception,一个是传回NULL pointer。
--
不先商议,所谋无效;
谋士众多,所谋乃成。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.119.119