MFC中常用类,宏,函数介绍

1.VC常用类

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right。分别表是左上角和右下角的坐标。可以通过以下的方法构造:

 

CRect( int l, int t, int r, int b ); 指明四个坐标

CRect( const RECT& srcRect ); RECT结构构造

CRect( LPCRECT lpSrcRect ); RECT结构构造

CRect( POINT point, SIZE size ); 有左上角坐标和尺寸构造

CRect( POINT topLeft, POINT bottomRight ); 有两点坐标构造

 

下面介绍几个成员函数:

 

int Width( ) const; 得到宽度

int Height( ) const; 得到高度

CSize Size( ) const; 得到尺寸

CPoint& TopLeft( ); 得到左上角坐标

CPoint& BottomRight( ); 得到右下角坐标

CPoint CenterPoint( ) const; 得当中心坐标

此外矩形可以和点(CPoint)相加进行位移,和另一个矩形相加得到“并”操作后的矩形。

 

CPoint:用来表示一个点的坐标,有两个成员变量:x y 可以和另一个点相加。

 

CString:用来表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。下面介绍几个成员函数:

 

GetLength 得到字符串长度

GetAt 得到指定位置处的字符

operator + 相当于strcat

void Format( LPCTSTR lpszFormat, ... ); 相当于sprintf

Find 查找指定字符,字符串

Compare 比较

CompareNoCase 不区分大小写比较

MakeUpper 改为小写

MakeLower 改为大写

 

CStringArray:用来表示可变长度的字符串数组。数组中每一个元素为CString对象的实例。下面介绍几个成员函数:

 

Add 增加CString

RemoveAt 删除指定位置CString对象

RemoveAll 删除数组中所有CString对象

GetAt 得到指定位置的CString对象

SetAt 修改指定位置的CString对象

InsertAt 在某一位置插入CString对象

 

常用宏

 

RGB

TRACE

ASSERT

VERIFY

 

常用函数

 

CWindApp* AfxGetApp();

HINSTANCE AfxGetInstanceHandle( );

HINSTANCE AfxGetResourceHandle( );

int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );用于弹出一个消息框

 

************************   

2.GUI有关的各种对象

 

Windows中有各种GUI对象(不要和C++对象混淆),当你在进行绘图就需要利用这些对象。而各种对象都拥有各种属性,下面分别讲述各种GUI对象和拥有的属性。

字体对象CFont用于输出文字时选用不同风格和大小的字体。可选择的风格包括:是否为斜体,是否为粗体,字体名称,是否有下划线等。颜色和背景色不属于字体的属性。关于如何创建和使用字体在2.2 在窗口中输出文字中会详细讲解。

刷子CBrush对象决定填充区域时所采用的颜色或模板。对于一个固定色的刷子来讲它的属性为颜色,是否采用网格和网格的类型如水平的,垂直的,交叉的等。你也可以利用8*8的位图来创建一个自定义模板的刷子,在使用这种刷子填充时系统会利用位图逐步填充区域。关于如何创建和使用刷子在2.3 使用刷子,笔进行绘图中会详细讲解。

画笔CPen对象在画点和画线时有用。它的属性包括颜色,宽度,线的风格,如虚线,实线,点划线等。关于如何创建和使用画笔在2.3 使用刷子,笔进行绘图中会详细讲解。

位图CBitmap对象可以包含一幅图像,可以保存在资源中。关于如何使用位图在2.4 在窗口中绘制设备相关位图,图标,设备无关位图中会详细讲解。

 

还有一种特殊的GUI对象是多边形,利用多边形可以很好的限制作图区域或是改变窗口外型。关于如何创建和使用多边形在2.6 多边形和剪贴区域中会详细讲解。

Windows中使用GUI对象必须遵守一定的规则。首先需要创建一个合法的对象,不同的对象创建方法不同。然后需要将该GUI对象选入DC中,同时保存DC中原来的GUI对象。如果选入一个非法的对象将会引起异常。在使用完后应该恢复原来的对象,这一点特别重要,如果保存一个临时对象在DC中,而在临时对象被销毁后可能引起异常。有一点必须注意,每一个对象在重新创建前必须销毁,下面的代码演示了这一种安全的使用方法:

 

OnDraw(CDC* pDC)

{

       CPen pen1,pen2;

       pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//创建对象

       pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//创建对象

       CPen* pPenOld=(CPen*)pDC->SelectObject(&pen1);//选择对象进DC

       drawWithPen1...

       (CPen*)pDC->SelectObject(&pen2);//选择对象进DC

       drawWithPen2...

       pen1.DeleteObject();//再次创建前先销毁

       pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次创建对象

       (CPen*)pDC->SelectObject(&pen1);//选择对象进DC

       drawWithPen1...

       pDC->SelectObject(pOldPen);//恢复

}

 

 

此外系统中还拥有一些库存GUI对象,你可以利用CDC::SelectStockObject(SelectStockObject( int nIndex )选入这些对象,它们包括一些固定颜色的刷子,画笔和一些基本字体。

 

BLACK_BRUSH   Black brush.

 

DKGRAY_BRUSH   Dark gray brush.

 

GRAY_BRUSH   Gray brush.

 

HOLLOW_BRUSH   Hollow brush.

 

LTGRAY_BRUSH   Light gray brush.

 

NULL_BRUSH   Null brush.

 

WHITE_BRUSH   White brush.

 

BLACK_PEN   Black pen.

 

NULL_PEN   Null pen.

 

WHITE_PEN   White pen.

 

ANSI_FIXED_FONT   ANSI fixed system font.

 

ANSI_VAR_FONT   ANSI variable system font.

 

DEVICE_DEFAULT_FONT   Device-dependent font.

 

OEM_FIXED_FONT   OEM-dependent fixed font.

 

SYSTEM_FONT   The system font. By default, Windows uses the system font to draw menus, dialog-box controls, and other text. In Windows versions 3.0 and later, the system font is proportional width; earlier versions of Windows use a fixed-width system font.

 

 

SYSTEM_FIXED_FONT   The fixed-width system font used in Windows prior to version 3.0. This object is available for compatibility with earlier versions of Windows.

 

 

DEFAULT_PALETTE   Default color palette. This palette consists of the 20 static colors in the system palette.

这些对象留在DC中是安全的,所以你可以利用选入库存对象来作为恢复DCGUI对象。

 

大家可能都注意到了绘图时都需要一个 DC 对象, DC Device Context 设备环境)对象是一个抽象的作图环境,可能是对应屏幕,也可能是对应打印机或其它。这个环境是设备无关的,所以你在对不同的设备输出时只需要使用不同的设备环境就行了,而作图方式可以完全不变。这也就是 Windows 耀眼的一点设备无关性。如同你将对一幅画使用照相机或复印机将会产生不同的输出,而不需要对画进行任何调整。 DC 的使用会在以后进行介绍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值