1. MFC CDC与CClientDC 的textout 用法
用CDC也不会出错,但不是自己创建一个,而是关联到OnMouseMove()的窗口DC上。
如
void CTestDlg:OnMouseMove(UINT nFlags, CPoint point)
{
CDC* pDC=GetDC();
CString str;
str.Format("%d %d",point.x,point.y);
pDC->TextOut(100,0,str);
ReleaseDC(pDC);
}
可能还会存在的问题:
在OnMouseMove中绘制,可能会导致闪烁。
pDC->TextOut(100,0,str);中的(100,0)这个坐标要在你这个窗口的可绘制区域内(超出部分会被裁减掉)。可以用pDC->SelectClipRgn(...)函数或SelectClipPath(...)函数设置这个区域。
2. MFC,怎么在自己定义的类里使用CDC类
VOID Draw( CWnd *pWnd, TYPF typf )
{
CClientDC dc(pWnd);
switch( typf.DrawType )
{
case ...//这里判断是画什么,我个人觉得你参数应该是个结构,其中包含需要绘制的类型,坐标和颜色等信息,利用CDC来绘图就可以了
}
}
3. MFC中关于CDC和FillRgn();
不是因为你使用对象(而不是指针)的原因出错。
而是因为,你的cd根本没有创建,只是声明了,没有产生实际的设备关联DC,这时候在cd上的物理操作都会报错。
你在使用之前,用任何一种方法创建或者获取了dc,都可以,比如:
cd.CreateCompatiableDC(p);
4. MFC中数据类型转换,一个CDC类型的变量如何复制给一个CDC*类型的变量
这样又何必呢,直接操作pDC不更省事?或者再定义一个CDC类型的指针。
CDC *pPRINT = pDC;
如果要内存绘图,可以CreateCompatibleDC
ctrl+f,选定文本批量查找替换即可(pPrint.用pDC->代替)。
5. MFC里CDC的一个问题
CDC
*pMyDC
=
GetDC();是获得当前窗口客户区的DC,由系统来管理,你只需要使用。你说的局部变量应该是pMyDC这个指针,它是局部的,就像你
int
a;一样,a也是局部,会自动销毁。
CDC
*pAnotherDC
=
new
CDC;是你自己构造的DC对象,常用来做内存dc,你首先应该创建它,然后才能使用,当然,用完了要删除;可以参考MSDN的CDC类和CreateCompatibleDC函数。
6. MFC中,怎样用CDC类画彩色线条
CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); //红色画笔
CClientDC dc(this); //如果View类,直接OnDraw里面使用pDC
CPen* pOldPen=dc.SelectObject(&pen);//保存原始的CPen,即黑色的CPen
dc.MoveTo(m_ptBegin);
dc.LineTo(point); //画出红色线
dc.SelectObject(pOldPen);//恢复原始的CPen
7. 求C++ MFC用CDC绘图的示例代码
自己写一个吧,主要是用到的是CDC中的,moveto,lineto,还有鼠标捕捉等。。。
8. 怎样才能使用MFC中的CDC类
将TextOut(P,0,0,L"ABC",3);
修改为P->TextOut(0,
0,
L"ABC",
3);
就可以了..
这个函数是CDC类的一个成员函数,直接调用.
9. 学习MFC的CDC类
将TextOut(P,0,0,L"ABC",3); 修改为P->TextOut(0, 0, L"ABC", 3); 就可以了.. 这个函数是CDC类的一个成员函数,直接调用.
10. MFC中的CDC是什么
Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 。MFC基础类库定义了设备环境对象类----CDC类。
CDC与CGdiObject的关系
说道CDC类就不能不提一下GdiObject---图形对象类。 在Windows应用程序中,设备环境与图形对象共同工作,协同完成绘图显示工作。就像画家绘画一样,设备环境好比是画家的画布,图形对象好比是画家的画笔。用画笔在画布上绘画,不同的画笔将画出不同的画来。选择合适的图形对象和绘图对象,才能按照要求完成绘图任务。
有关CDC类的继承
父类:从 CObject 直接继承而来。继承了CObject类的各种特性,如动态创建等等。
子类:CClientDC-------代表操作窗口的DC ,是比较常用的一个子类
CMetaFileDC ------响应Meta File的DC ,Meta File是一些GDI消息。
CPaintDC-------响应WM_PAINT消息的DC。
CWindowDC ------代表整个屏幕的DC
CDC类的数据成员
数据成员只有两个:
HDC m_hDC : CDC对象使用的输出设备上下文
HDC m_hAttribDC : CDC对象使用的属性设备上下文
二者在CDC对象创建时指向相同的设备上下文。