C++.docx

上传人:b****5 文档编号:5608607 上传时间:2022-12-29 格式:DOCX 页数:14 大小:23.69KB
下载 相关 举报
C++.docx_第1页
第1页 / 共14页
C++.docx_第2页
第2页 / 共14页
C++.docx_第3页
第3页 / 共14页
C++.docx_第4页
第4页 / 共14页
C++.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++.docx

《C++.docx》由会员分享,可在线阅读,更多相关《C++.docx(14页珍藏版)》请在冰豆网上搜索。

C++.docx

C++

CPen

画笔是绘图的基本工具,在MFC中画笔是CPen类的对象,它用来在DC上完成绘制线条的任务。

初始化时,系统自动提供了一支黑色的默认画笔。

如果程序设计人员对这个默认的画笔不满意,可以自己创建画笔来替换它。

所谓的自定义画笔,就是程序员自己创建的CPen类对象,创建画笔对象是,需要使用CPen类的构造函数,它的原型为:

CPen(Intstyle,intwidth,COLORREFcolor);

style:

画笔的样式

width:

画笔的宽度

color:

画笔的颜色(颜色用RGB值来描述)

1.CPen类构造函数该类共重载了3个构造函数:

CPen();

CPen(intnPenStyle,intnWidth,COLORREFcrColor);

throw(CResourceException);

CPen(intnPenStyle,intmWidth,constLOGVRUSH*pLogBrush,

intnStyleCount=0,constDWORD*lpStyle=NULL);

throw(CResourceException);

参数nPenStyle的值

参数值注释

PS_SOLID创建一个实线画笔

PS_DASH创建一个虚线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效

PS_DOT创建一个点线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效  

PS_DASHDOT创建一个点和虚线交替画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效  

PS_DASHDOTDOT创建一个双点线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效  

PS_NULL创建一个空线画笔 

PS_INSIDEFRAME创建一个内框线画笔,该画笔可以在WindowsGDI输出函数定义的矩形边界所生成的封闭形状的边框内绘制直线  PS_GEOMETRIC创建一个几何画笔

PS_COSMETIC创建一个装饰画笔  

PS_ALTERNATE创建一个设置其他像素的画笔  

PS_USERSTYLE创建一个使用由用户提供的风格矩阵的画笔  PS_ENDCAP_ROUND尾帽为圆形的 

PS_ENDCAP_SQUARE尾帽为方形的

PS_ENDCAP—FLAT尾帽为平坦的 

PS_JOIN_BEVEL成尖角连接

PS_JOIN_MITET通过setMiterLimit函数设置的当前极限值范围内斜接;否则,成尖角连接  

PS_JOIN_ROUND成圆角连接参数pLogBrush指向一个LOGBRUSH结构。

该结构原型声明如下:

  

typedefstructtagLOGBRUSH{/*lb*/

 UINTlbStyle;  

COLORREFlbColor;

LONGlbHatch;

}LOGBRUSH;

该结构定义了一个画刷的风格、颜色和阴影线种类。

画刷的风格值参数值说明 

BS_DIBPATTERN由设备无关的位图定义的图形画刷。

如果该参数值为该值,则成员lbHatch包含了一个被压缩的DIB句柄  

BS_DIBPATTERNPT由设备无关的位图定义的图形画刷。

如果该参数值为该值,则成员lbHatch包含了一个被压缩的DIB指针  

BS_HATCHED阴影线画刷

BS_HOLLOW中空画刷  

BS_NULL与参数值为BS_HOLLOW定义相同的画刷  

BS_PATTERN由内存位图定义的图形画刷

BS_SOLID实画刷

BS_NULL与参数值为BS_HOLLOW定义相同的画刷 

BS_PATTERN由内存位图定义的图形画刷

BS_SOLID实画刷

2.CPen类初始化成员函数  

1)CreatePen()成员函数其原型声明如下:

  

BOOLCreatePen(intnPenStyle,intnWidth,constLOGBRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);

2)CreatePenIndirect()成员函数的原型声明如下:

BOOLCreatePenIndirect(LPLOGPENlpLogPen); 

LOGPEN结构的具体定义如下:

  

typedefstructtagLOGPEN{//lgpn  

UNITlopnStyle;  

POINTlopnWidth;  

COLORREFlopnColor;

  }LOGPEN;  

可以使用RGB宏来完成颜色设定:

  

COLORREFRGB(cRed,cGreen,cBlue);

也可以使用COLORREF,其结构为0x00bbggrr。

  注:

COLORREF实际上就是一个DWORD类型的。

所有如果进行颜色传递直接按%d格式就可以,不需要格式的转换。

3.CPen创建的例子

CPenpen1;

CPen*oldPen;

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

oldPen=pDC->SelectObject(&pen1);

pDC->MoveTo(10,10);

pDC->LineTo(200,20);

pDC->SelectObject(oldPen);

CPoint

CPoint类简介

CPoint类与WindowsPOINT结构类似。

它还包括用来操纵CPoint和POINT结构的成员函数。

只要POINT结构可以使用的地方,CPoint对象也可以使用。

这个类与“大小”有关的操作符可以接受CSize对象或SIZE结构,因为这两者是可以互换的。

注意:

这个类派生于tagPOINT结构(名字tagPOINT是POINT结构的不太常用的有关名字)。

这意味着POINT结构的数据成员,x和y,也是CPoint的可以访问的数据成员。

CPoint类成员

构造CPoint构造一个CPoint  

操作符Offset给CPoint的x和y成员增加值  

operator==检查两个点是否相等

operator!

=检查两个点是否不等  

返回CPoint值的操作符operator+=通过增加一个尺寸或点来使CPoint偏移

operator-=通过减去一个尺寸或点来使CPoint偏移  

operator+返回一个CPoint和一个尺寸或点的和  

operator-返回一个CPoint和一个尺寸或点的偏差,或一个点的不存在  

返回CSize值的操作符operator-返回两点之间的大小差别

返回CRect值的操作符operator+返回偏移一个大小的CRect  

operator-返回偏移一个负大小的CRect

CPoint构造函数

CPoint:

:

CPoint  

CPoint();  

CPoint(intinitX,intinitY);  

CPoint(POINTinitPt);  

CPoint(SIZEinitSize);  

CPoint(DWORDdwPoint);  

参数:

initX指定CPoint的成员x的值。

  

initY指定CPoint的成员y的值。

  

initPt用于初始化此CPoint的一个POINT结构或CPoint对象。

  

initSize用于初始化CPoint值的SIZE结构或CSize。

  

dwPoint设此参数的低位字为x成员,高位字为y成员。

  

说明:

构造一个CPoint对象。

如果不给参数,则不初始化x和y成员。

DrawText

函数功能

该函数在指定的矩形里写入格式化的正文,根据指定的方法对正文格式化(扩展的制表符,字符对齐、折行等)。

  要指定额外的格式化选项,请使用DrawTextEx函数。

函数原型

intDrawText(  

HDChDC;//设备描述表句柄  

LPCTSTRlpString;//将要绘制的字符串

intnCount;//字符串的长度  

LPRECTlpRect;//指向矩形结构RECT的指针 

UINTuFormat;//正文的绘制选项  

);

参数

hdc:

  [输入]设备环境句柄。

  

lpString:

[输入]指向将被写入的字符串的指针,如果参数nCount是-1,则字符串必须是以\0结束的。

如果uFormat包含DT_MODIFYSTRING,则函数可为此字符串增加4个字符,存放字符串的缓冲区必须足够大,能容纳附加的字符。

  

nCount:

[输入]指向字符串中的字符数。

如果nCount为-1,则lpString指向的字符串被认为是以\0结束的,DrawText会自动计算字符数。

lpRect:

  [输入/输出]指向结构RECT的指针,其中包含文本将被置于其中的矩形的信息(按逻辑坐标)。

  

uFormat:

[输入]指定格式化文本的方法。

它可以下列值的任意组合,各值描述如下:

说明

DT_BOTTOM

将正文调整到矩形底部。

此值必须和DT_SINGLELINE组合。

DT_CALCRECT

决定矩形的宽和高。

如果正文有多行,DrawText使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳正文的最后一行。

如果正文只有一行,则DrawText改变矩形的右边界,以容纳下正文行的最后一个字符。

出现上述任何一种情况,DrawText返回格式化正文的高度,而不是绘制正文。

DT_CENTER

使正文在矩形中水平居中。

DT_VCENTER

使正文在矩形中垂直居中。

(DreamSmart注:

此参数必须和DT_SINGLE连用,否则GDI无法计算目的矩形)

DT_EDITCONTROL

复制多行编辑控制的正文显示特性。

特殊地,为编辑控制的平均字符宽度是以同样的方法计算的,此函数不显示只是部分可见的最后一行。

DT_END_ELLIPSIS

对于显示的文本,如果结束的字符串的范围不在矩形内,它会被截断并被附加到椭圆中。

如果一个字母不是在字符串的末尾处超出了矩形范围,它不会被椭圆截断。

字符串不会被修改,除非指定了DT_MODIFYSTRING标志。

DT_EXPANDTABS

扩展制表符,每个制表符的缺省字符数是8。

DT_WORD_ELLIPSIS,DT_PATH_ELLIPSIS和DT_END_ELLIPSIS不能和此参数一起使用

DT_EXTERNALLEADING

在行的高度里包含字体的外部标头,通常,外部标头不被包含在正文行的高度里。

DT_HIDEPREFIX

忽略正文中的前缀字符(&),并且前缀字符后面的字母不会出现下划线。

其它前缀字符的调用方式不受影响。

  输入的字符串:

"A&bc&&d"正常:

"Abc&d"DT_HIDEPREFIX:

"Abc&d"

DT_INTERNAL

用系统字体来计算正文度量。

DT_LEFT

正文左对齐。

DT_MODIFYSTRING

修改给定的字符串来匹配显示的正文。

此标志必须和DT_END_ELLIPSIS或DT_PATH_ELLIPSIS同时使用。

DT_NOCLIP

无裁剪绘制。

当DT_NOCLIP使用时DrawText的使用会有所加快。

DT_NOFULLWIDTHCHARBREAK

在宽字符的字符串中防止行断开,因此折行规则相当于单字符的字符串。

例如,我们可以用在棒子版的windows中,为图标标签提供更好的可读性。

除非指定DT_WORDBREAK,否则此值没有作用。

DT_NOPREFIX

关闭前缀字符的处理。

通常DrawText解释助记前缀字符,&为给其后的字符加下划线,解释&&为显示单个&。

指定DT_NOPREFIX,这种处理被关闭。

DT_PATH_ELLIPSIS

对于显示的正文,替换字符串在椭圆中的字符以确保结果能在合适的矩形内。

如果该字符串包含反斜杠(\)字符,DT_PATH_ELLIPSIS尽可能的保留最后一个反斜杠之后的正文。

字符串不会被修改,除非指定了DT_MODIFYSTRING标志。

DT_PREFIXONLY

仅仅在(&)前缀字符的位置下绘制一个下划线。

不绘制字符串中的任何其他字符。

输入的字符串:

"A&bc&&d"正常:

"Abc&d"DT_PREFIXONLY:

"_"

DT_RIGHT

正文右对齐。

DT_RTLREADING

当选择进设备环境的字体是希伯来文或阿拉伯文字体时,为双向正文安排从右到左的阅读顺序都是从左到右的。

DT_SINGLELINE

显示正文的同一行,回车和换行符都不能折行。

DT_TABSTOP

设置制表,参数uFormat的15"C8位(低位字中的高位字节)指定每个制表符的字符数,每个制表符的缺省字符数是8。

注意:

DT_CALCRECT,DT_EXTERNALLEADING,DT_INTERNAL,  DT_NOCLIP,

DT_NOPREFIX

值不能和DT_TABSTOP值一起使用。

DT_TOP

正文顶端对齐(仅对单行)。

DT_WORDBREAK

断开字。

当一行中的字符将会延伸到由lpRect指定的矩形的边框时,此行自动地在字之间断开。

一个回车一换行也能使行折断。

DT_WORD_ELLIPSIS

截短不符合矩形的正文,并增加椭圆。

返回值

如果函数调用成功,返回值是正文的高度(逻辑单位)。

如果指定了DT_VCENTER或DT_BOTTOM,返回值是lpRect->top到绘制的正文的底部的偏移值。

如果函数调用失败,返回值是0  WindowsNT:

若想获得更多错误信息,请调用GetLastError函数。

备注

函数DrawText用设备环境中的字体选择、正文颜色和背景颜色来写正文。

DrawText裁剪正文,不会出现在指定矩形的外面,除非指定了DT_NOCLIP。

除非使用DT_SINGLELINE格式化,否则其余的格式都认为正文有多行。

如果选择的字体对指定的矩形而言太大,DrawText不会试图去换成一种小字体。

  DrawText支持纵和方向均为0的字体。

设备环境的正文对齐方式必须包括TA_LEFT,TA_TOP和TA_NOUPDATECP标志。

  Windows

CE:

如果为参数uFormat指定DT_CALCRECT值,必须为lpRect指向的RECT结构设置right和bottom成员。

Windows

CE不支持uFormat为DT_EXTERNALLEADING。

在K线图中的运用:

格式:

drawtext(条件表达式子,位置,‘文字’);  含义:

当条件满足时,在指定的位置显示需提示的汉字;

编写时注意事项:

位置要与价格相适应,如果价格在5000,那么位置处用50是显示不出文字的;  文字前后的标点是英文状态下输入的,不能用中文状态输入。

SetWindowText

函数功能:

该函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。

如果指定窗口是一个控件,则改变控件的文本内容。

然而,SetWindowText函数不改变其他应用程序中的控件的文本内容。

函数原型:

BOOLSetWindowText(HWNDhwnd,LPCTSTRlpString);

参数:

hWnd:

要改变文本内容的窗口或控件的句柄。

lpString:

指向一个空结束的字符串的指针,该字符串将作为窗口或控件的新文本。

返回值:

如果函数成功,返回值为非零;如果函数失败,返回值为零。

若想获得更多错误信息,请调用GetLastError函数。

备注:

如果目标窗口属于当前进程,SetWindowText函数会使WM_SETTEXT消息发送给指定的窗口或控件。

然而,如果控件是以WS_CAPTION风格创建的列表框控件,SetWindowText函数将为控件设置文本,而不是为列表项设置文本。

SetWindowText函数不扩展tab字符(ASCII代码0×09),Tab字符以字符‘}’来显示。

  

速查:

WindowsNT:

3.1以上版本;Windows:

95以上版本;Windows

CE:

1.0以上版本;头文件;winuser.h;库文件:

user32.lib;Unicode:

WindowsNT上实现为Unicode和ANSI两种版本。

CListBox类的成员函数

AddString

向列表中添加串

CharToItem

重载以提供的WM_CHAR处理

CListBox

创建CListBox类

ComapareItem

在一个排序的owner-draw列表框中调用来获取一个新选项的位置

Create

创建一个列表框并且将它同CListBox对象联系起来

DeleteItem

当用户从owner-draw列表框中删除一个选项时起作用

DeleteString

从列表框中删除串

Dir

将当前目录下的所有文件添加到列表框中

DrawItem

当一个可视owner-draw列表框外观改变时被调用

FindString

从列表框中搜索串

FindStringExact

查找匹配制定串的首个列表框串

GetCount

返回组合框的列表框中串的数目

GetCurSel

检索当前选取选项的索引,即使在组合框的列表中

GetDroppedControlRect

检索下拉组合框中可视列表框的屏幕坐标

GetDroppedState

检索下拉组合框的列表框是否可视

GetDroppedWidth

检索作为组合框一部分的下拉列表框中的最小可用宽度

GetEditSel

获取编辑框中当前选区内容的开始和结束字符位置

GetExtendUI

组合框使用默认的用户界面还是扩展的用户界面

GetHorizontalExtend

返回作为组合框部件列表框能够被水平滚动的像素宽带

GetItemDate

检索与指示组合框选项相关的32位应用程序值

GetItemDatePtr

检索与指示组合框相关的32位应用程序值的指针

GetItemHeight

检索组合框中列表选项的高度

GetLBText

获取来自组合框中列表框的词条

GetLBTextLen

获取列表框中词条的长度

GetLocale

检索组合框的当前标识

GetTopIndex

返回作为组合部件的列表框中的第一个可视选项的索引

InitStorage

给作为组合框部件的列表框选项和串与分配内存

InsertString

将串加到组合框的列表框中

LimitText

限制用户可以输入到组合框中的编辑框中的文本长度

MeasureItem

当创建owner-draw组合框,已决定组合框尺寸

Paste

将剪贴板中的数据插入到编辑框中

ResetContent

从组合框的列表框和编辑框中删除所有的串

SetCurSel

在组合框的列表框中选取一个串

SetDroppedWidth

未作为组合框部件的下拉列表框设置最小的可用宽度

SetEditSel

在组合框的编辑框中选取字符

SetExtendUI

选取默认的用户界面或扩展界面

SetHorizontalExtent

设置作为组合框部件的列表框可水平滚动的像素宽度

SetItemDate

设置与组合框相关的32位值

SetItemDatePtr

设置与组合框相关的32位值的指针

SetItemHeight

设置组合框中的列表框或编辑框选项的高度

SetLocale

设置组合框的当前标识符

SetTopIndex

通知组合框的列表框部分在最上方显示选项

ShowDropDown

显示或隐藏列表框

SetCurSel

intSetCurSel(intnSelect);  

返回值  

调用成功时返回选中的项的下标。

如果nSelect大于列表中项的个数,则返回CB_ERR。

如果nSelect为-1,则清除当前的选择并返回CB_ERR。

  

参数nSelect  

指定要选中的字符串的下标。

如果为-1,则清除当前的选择,编辑控件中的内容设置为空。

  说明

本函数在组合框的列表框中选择一个字符串。

必要时列表框会滚动,以使该字符串在列表的可视区内(列表是可见的时)。

编辑控件中的文本将相应地变为选中的字符串。

此前在列表框中的选择将不复存在。

FindStringExact

intFindStringExact(intnIndexStart,LPCTSTRlpszFind)const;

返回值:

返回匹配的项的下标。

未查找到匹配串时返回CB_ERR。

参数:

nIndexStart指定了查找开始的下标。

当查到列表的结尾处时,又继续找到它标志的位置。

如果设为-1,则从列表的开始处开始查找匹配的串。

lpszFind指向一个以null结尾的字符串,该字符串中可以包括完整的文件名(包括扩展名)。

查找过程是不区分大小写的。

说明:

本函数用于查找组合框的列表中匹配指定字符串的第一个项,但不把它选为当前项。

如果组合框是自定义的,但未设置CBS_HASSTRING风格,FindStringExact会试图匹配双字值。

GetLBText-MFC

intGetLBText(intnIndex,LPTSTRlpszText)const;

voidGetLBText(intnIndex,CString&rString)const;

返回值:

返回字符串的字节数,不包括终结符null。

如果nIndex指定的值无效,则返回CB_ERR。

参数:

nIndex指明列表框中待拷贝的字符串的下标。

lpszText指向接收字符串的缓冲。

缓冲必须能够容纳下待拷贝的字符串及其终结符null。

rString对CString对象的一个参考。

说明:

本函数用于从组合框的列表中拷贝一个字符串。

第二种实现方式用拷贝来的文本填充一个CString对象。

InsertString

intInsertString(intnIndex,LPCTSTRlpszItem);

返回值:

字符串被插入位置的基于零的索引。

如果出错,则返回LB_ERR;如果无足够有效空间来存储新字符串,则返回LB_ERRSPACE。

参数:

nIndex指定插入字符串的基于零的索引。

如果此参数为-1,则字符串添加到列表末尾。

lpszItem指向插入的空终止字符串的指针。

说明:

插入字符串到列表框中。

与AddString成员函数不同,InsertString不会使LBS_SORT风格的列表被排序。

GetWindowText

函数功能

  该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。

如果指定的窗口是一个控件,则拷贝控件的文本。

但是,GetWindowText不能接收在其他应用程序中的控件的文本。

函数原型:

IntGetWi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1