CStatic控件的基本使用.docx

上传人:b****8 文档编号:28466308 上传时间:2023-07-14 格式:DOCX 页数:11 大小:18.38KB
下载 相关 举报
CStatic控件的基本使用.docx_第1页
第1页 / 共11页
CStatic控件的基本使用.docx_第2页
第2页 / 共11页
CStatic控件的基本使用.docx_第3页
第3页 / 共11页
CStatic控件的基本使用.docx_第4页
第4页 / 共11页
CStatic控件的基本使用.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

CStatic控件的基本使用.docx

《CStatic控件的基本使用.docx》由会员分享,可在线阅读,更多相关《CStatic控件的基本使用.docx(11页珍藏版)》请在冰豆网上搜索。

CStatic控件的基本使用.docx

CStatic控件的基本使用

CStatic控件的基本使用

CStatic继承于CWnd,是一种特殊的窗体。

他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件.通常静态控件不提供输入和输出。

但是如果把他的属性设置为SS_NOTIFY,他可以通知其父窗口的击鼠标事件。

如果文本不变,可以直接设置其Caption。

如果想在运行过程中改变其显示文本,可以用如下方式:

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_STATIC);

pStatic-SetWindowText("JustaTestofStaticControl!

");

如果要显示图标,则必须要设置窗口属性为SS_ICON和SS_CENTERIMAGE,实例代码

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_STATIC);

LONGstyle=GetWindowLong(pStatic-GetSafeHwnd(),GWL_STYLE);style=SS_ICON;

style=SS_CENTERIMAGE;

SetWindowLong(pStatic-GetSafeHwnd(),GWL_STYLE,style);

pStatic-SetIcon(m_hIcon);

如果要显示cursor,则必须要设置窗口属性为SS_ICON和SS_CENTERIMAGE,实例代码

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_STATIC);

LONGstyle=GetWindowLong(pStatic-GetSafeHwnd(),GWL_STYLE);

style=SS_ICON;

style=SS_CENTERIMAGE;

SetWindowLong(pStatic-GetSafeHwnd(),GWL_STYLE,style);

pStatic-SetCursor(OnQueryDragIcon());

如果要显示图标,则必须要设置窗口属性为SS_BITMAP和SS_CENTERIMAGE,实例代码

//获得指向静态控件的指针

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_STATIC);

//获得位图句柄

HBITMAPhBitmap=:

:

LoadBitmap(AfxGetApp()-m_hInstance,

MAKEINTRESOURCE(IDB_BITMAP2));

//LONGresult=SetWindowLong(pStatic-GetSafeHwnd(),GWL_STYLE,style);

//设置静态控件的样式,使其可以使用位图,并试位标显示使居中

pStatic-ModifyStyle(0xF,SS_BITMAPSS_CENTERIMAGE);

//设置静态控件显示位图

pStatic-SetBitmap(hBitmap);

使用VisualC++6.0编制软件时,静态控件是最常用的控件之一。

一般情况下,静态控件用作那些没有固定标题文本属性的控件(如文本控件、列表框等)的标签,或者用来为控件分组,或者用来显示一些提示性的文件。

实际上,静态控件除了显示静态文本这一基本功能外,还有许多其他的特殊功能,如在静态控件中可以显示图标、位图,甚至还可以在静态控件中显示动画。

本文将通过示例程序来介绍静态控件的这些特殊用法。

⑴使用AppWizard创建一个基于对话框的MFC应用程序,设置其工程名为ShowIco。

⑵在对话框上增加一个静态控件。

需要注意的是,有资源管理器添加的静态控件在默认情况下其ID均为IDC_STATIC,因此,如果需要在程序中区分和操纵各个不同的静态控件,一般情况下,需要更改新添加的静态控件的ID值。

这里将静态控件的ID值设置为IDC_SHOWICO。

⑶在资源管理器中添加图标资源,其ID为IDI_ICON1。

⑷使用ClassWizard添加WM_INITDIALOG消息处理函数OnInitDialog。

⑸在OnInitDialog函数中下面的代码:

//获得指向静态控件的指针

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_SHOWICO);

//加载图标

HICONhIcon=AfxGetApp()-LoadIcon(IDI_ICON1);

//设置静态控件的样式,使其可以使用图标,并试图标显示使居中

pStatic-ModifyStyle(0xF,SS_ICONSS_CENTERIMAGE);

//设置静态控件图标

pStatic-SetIcon(hIcon);

运行该程序.

⑴使用AppWizard创建一个基于对话框的MFC应用程序,设置其工程名为ShowBmp。

⑵在对话框上增加一个静态控件,将静态控件的ID值设置为IDC_SHOWBMP。

⑶在资源管理其中添加位图资源,其ID为IDB_INFO。

⑷使用ClassWizard添加WM_INITDIALOG消息处理函数OnInitDialog。

⑸在OnInitDialog函数中下面的代码:

//获得指向静态控件的指针

CStatic*pStatic=(CStatic*)GetDlgItem(IDC_SHOWBMP);

//获得位图句柄

HBITMAPBitmap=:

:

LoadBitmap(AfxGetApp()_hInstance,

MAKINTRESOURCE(IDB_INFO));

//设置静态控件的样式,使其可以使用位图,并试位标显示使居中

pStatic-ModifyStyle(0xF,SS_BITMAPSS_CENTERIMAGE);

//设置静态控件显示位图

pStatic-SetBitmap(hBitmap);

运行该程序即可。

编写一个字符串在静态控件中不停的移动的程序。

⑴使用AppWizard创建一个基于对话框的MFC应用程序,设置其工程名为ShowAnimation。

⑵在对话框上增加一个静态控件。

将静态控件的ID值设置为IDC_PREVIEW。

⑶使用ClassWizard添加WM_INITDIALOG消息处理函数OnInitDialog和WM_TIMER的消息处理函数OnTimer。

⑷在CshowAnimationDlg类中,增加两个变量m_x和m_y,用以表示字符串的坐标。

⑸在OnInitDialog函数中添加下列代码:

m_x=0;

m_y=0;

KillTimer

(1);

VERIFY(SetTimer(1,500,NULL)!

=0);

1.在CshowAnimationDlg类中,增加一个成员函数Draw()

voidCshowAnimationDlg:

:

Draw()

{

CWnd*pWnd=GetDlgItem(IDC_PREVIEW);

CDC*pDC=pWnd-GetDC();

RECTrect;

pWnd-GetClientRect(&rect);

pWnd-Invalidate();

pWnd-UpdateWindow();

pDC-SelectStockObject(BLACK_BRUSH);

pDC-Rectangle(0,0,rect.right,rect.bottom);

pDC-SetTextColor(RGB(255,0,0));

pDC-SetBkColor(RGB(0,0,0));

if((m_x=rect.right)(m_y=rect.bottom-20))

{m_x=0;

m_y=0;

}

pDC-TextOut(m_x,m_y,“"动画“");

}

2.在OnTimer函数中,添加如下代码:

if(nIDEvent1)

{

m_x+=5;

m_y+=5;

Draw();

}

elseCWnd:

:

OnTimer(nIDEvent);

MFC中CStatic类(静态控件类)

【说明】CStatic类提供了一个Windows静态控件的功能。

一个静态控件可以用来显示一个文本字符串、方框、矩形、图标、光标、位图或增强的图元文件。

它可以被用来作为标签、方框或用来分隔其它的控件。

静态控件通常不接收输入,也不提供输出;但是,如果它具有SS_NOTIFY风格,则它可以通知其父有关设备的消息。

创建一个静态控件分两步。

首先,调用构造函数来构造一个CStatic类的对象,然后调用成员函数Create来创建此静态控件并将它分配给当前的CStatic类的对象。

如果你是在一个对话框中创建了一个静态控件(通过一个对话框资源),则当用户关闭这个对话框时,CStatic类的对象被自动销毁。

如果你是在一个窗口中创建了一个CStatic类的对象,则可能需要你自己来销毁它。

在一个窗口的堆栈中创建的CStatic类的对象将自动被销毁。

如果你是使用new函数在堆中创建CStatic类的对象,则当你使用完后,必须调用delete来销毁这个CStatic类的对象。

【库名】afxwin.h

【成员函数】

(1)BOOLCreate(LPCTSTRlpszText,DWORDdwStyle,constRECT&rect,CWnd*pP

arentWnd,UINTnID=0xffff);

【返回值】如果本成员函数调用成功则返回非零值;否则返回0。

【参数】

lpszText

指定要放置在静态控件中的文本。

如果是NULL,则表示没有文本是可见的。

dwStyle

指定静态控件的窗口风格。

以下任何静态控件风格的组合都可以用于这个控件。

SS_BITMAP

指定在静态控件中显示一个被定义在资源文件中的位图。

该风格将忽略静态控件的高度和宽度,静态控件将根据位图的大小自动调节自身的尺寸。

SS_BLACKFRAME

建立一个黑色的边框。

SS_BLACKRECT

建立一个黑色的矩形。

SS_CENTER

使文字在静态控件中水平居中。

SS_CENTERIMAGE

当静态控件用于显示文本时,该风格将使文本在静态控件中垂直居中。

当静态控件用于显示位图或图标时,该风格将使位图或图标在静态控件中垂直居中,当位图或图标小于静态控件时,静态控件将使用位图或图标左上角的点的颜色填充空白处。

SS_ENHMETAFILE

指定在静态控件中显示一个增强型图元文件。

该风格将不会忽略静态控件的高度和宽度,而图元文件将调节自身的大小来适应静态控件的尺寸。

SS_ETCHEDFRAME

建立一个浮雕边框。

SS_ETCHEDHORZ

建立一个边框,并将顶端边框设置为浮雕风格。

SS_ETCHEDVERT

建立一个边框,并将左侧边框设置为浮雕风格。

SS_GRAYFRAME

建立一个灰色的边框。

SS_GRAYRECT

建立一个灰色的矩形。

SS_ICON

指定在静态控件中显示一个被定义在资源文件中的图标。

该风格将忽略静态控件的高度和宽度,静态控件将根据位图的大小自动调节自身的尺寸。

SS_LEFT

使文字在静态控件中左对齐。

SS_LEFTNOWORDWRAP

在缺省情况下,静态控件把’“n’和’“t’都作为换行标记。

只有在设置本风格后,静态控件才把’“t’看作是制表键(缺省时制表键的宽度为8个字符的宽度)。

SS_NOPREFIX

该标志表示终止对前缀字符的处理。

通常,本成员函数将前缀助记符’&’解释为一个指令,即在’&’后面的字符下面划一下划线。

并且将’&&’解释成一个单个的’&’指令。

通过指令指定该标志,这种处理就不再进行了。

SS_NOTIFY

在缺省情况下,静态控件是不响应鼠标事件的。

只有在设置该风格后,当用户单击静态控件时,静态控件才向父窗口发送STN_CLICKED通知。

SS_OWNERDRAW

在指定该风格后,当静态控件在视觉外观发生变化时,该静态控件的属主窗口将响应WM_DRAWITEM消息。

SS_RIGHT

使文字在静态控件中左对齐。

SS_SIMPLE

只显示一行文本,文本不能被剪切或替换(父窗口不能处理CTLCOLOR消息)。

SS_SUNKEN

设置一个下沉的静态控件,当静态控件为一个方框时,方框的四边下沉;当静态控件为一个矩形时,整个矩形下沉。

SS_USERITEM

建立一个用户自定义项目。

SS_WHITEFRAME

建立一个白色的边框。

SS_WHITERECT

建立一个白色的矩形。

rect

指定静态控件的位置和大小。

它可以是一个RECT结构类型的数据或一个CRect类的对象。

pParentWnd

指定CStatic类的对象的父窗口,通常是一个CDialog类的对象。

它不能是NULL。

nID=0xffff

指定静态控件的控件标识。

【注释】在使用静态控件显示文本而且没有设置SS_LEFTNOWORDWRAP风格时,’“n’和’“t’都忧患行的作用。

两者的区别是在一行文本的长度大于静态控件的宽度时使用’“n’换行将使该行文本的下一行也为空行,但使用’“t’则无此现象。

(2)CStatic();

【注释】构造一个空的CStatic类的对象。

(3)HBITMAPGetBitmap()const;

【返回值】返回一个当前位图的句柄,如果没有设置位图,则返回NULL。

【注释】此成员函数用来获取先前用成员函数SetBitmap设置的与CStatic类的对象关联的位图句柄。

(4)HCURSORGetCursor();

【返回值】返回一个当前图标句柄。

如果没有设置图标则返回NULL。

【注释】此成员函数用来获取先前用成员函数SetCursor设置的与CStatic类的对象关联的光标句柄。

(5)HENHMETAFILEGetEnhMetaFile()const;

【返回值】返回一个当前增强图元文件句柄。

如果没有设置增强的图元文件则返回NULL

【注释】此成员函数用来获取先前用成员函数SetEnhMetaFile设置的与CStatic类的对象关联的增强的图元文件句柄。

(6)HICONGetIcon();

【返回值】返回一个当前图标句柄。

如果没有设置增强的图标则返回NULL。

【注释】此成员函数用来获取先前用成员函数SetIcon设置的与CStatic对象关联关联的图标句柄。

(7)HBITMAPSetBitmap(HBITMAPhBitmap)const;

【返回值】返回先前与此静态控件关联的位图的句柄。

如果没有与此静态控件关联的位图,则返回NULL。

【参数】

hBitmap

要绘制在此静态控件中的位图句柄。

【注释】此成员函数用来将一个新的位图与此静态控件关联。

这个位图将被自动绘制在此静态控件中。

缺省的,它将被绘制在左上角,并且此静态控件将根据位图的大小来调整尺寸。

使用此成员函数必须设置风格SS_BITMAP。

(8)HCURSORSetCursor(HCURSORhCursor);

【返回值】返回先前与此静态控件关联的光标的句柄。

如果没有与此静态控件关联的光标,则返回NULL。

【参数】

hCursor

要绘制在此静态控件中的光标句柄。

【注释】此成员函数用来将一个新的光标与此静态控件关联。

这个光标将被自动绘制在此静态控件中。

缺省的,它将被绘制在左上角,并且此静态控件将根据光标的大小来调整尺寸。

使用此成员函数必须设置风格SS_ICON。

(9)HENHMETAFILESetEnhMetaFile(HENHMETAFILEhMetaFile);

【返回值】返回先前与此静态控件关联的增强图元文件的句柄。

如果没有与此静态控件关联的增强图元文件,则返回NULL。

【参数】

hMetaFile

要绘制在此静态控件中的增强图元文件句柄。

【注释】此成员函数用来将一个新的增强图元文件与此静态控件关联。

这个增强图元文件将被自动绘制在此静态控件中。

缺省的,它将被绘制在左上角,并且此静态控件将根据增强图元文件的大小来调整尺寸。

使用此成员函数必须设置风格SS_ENHMETAFILE。

(10)HICONSetIcon(HICONhIcon);

【返回值】返回先前与此静态控件关联的图标的句柄。

如果没有与此静态控件关联的图标,则返回NULL。

【参数】

hIcon

要绘制在此静态控件中的图标句柄。

【注释】此成员函数用来将一个新的图标与此静态控件关联。

这个图标将被自动绘制在此静态控件中。

缺省的,它将被绘制在左上角,并且此静态控件将根据图标的大小来调整尺寸。

使用此成员函数必须设置风格SS_ICON。

(注:

可编辑下载,若有不当之处,请指正,谢谢!

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

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

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

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