CStatic类提供了一个Windows
静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的
图元文件。
简介
CStatic
它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。创建一个静态控件分两步。首先,调用
构造函数来构造此CStatic对象,然后调用Create成员函数来创建此静态控件并将它与该CStatic对象连接。如果你是在一个对话框中创建了一个
静态控件(通过一个对话框资源),则当用户关闭这个对话框时,此CStatic对象被自动
销毁。如果你是在一个窗口中创建了一个CStatic对象,则必须由你来销毁它。在一个窗口的
堆栈中创建的CStatic对象将自动被销毁。如果你是使用new
函数在堆中创建CStatic对象,则当你使用完后,必须调用delete来销毁这个CStatic对象。
CStatic类成员
构造
初始化
CStatic::Create
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
返回值:如果成功则返回非零值;否则返回0;
参数:
说明:可以将下列窗口风格用于一个静态控件:
如果你准备在此
静态控件中显示一个
位图,光标,图标,或
图元文件,你必须使用下列风格之一:
请参阅:CStatic::CStatic
CStatic::CStatic
CStatic( );
说明:此成员函数用来构造一个CStatic对象。
请参阅:CStatic::Create
CStatic::GetBitmap
HBITMAP GetBitmap( ) const;
返回值:
返回一个当前位图的句柄,如果没有设置位图,则返回NULL。
说明:
此成员函数用来获取先前用SetBitmap设置的与CStatic关联的位图句柄。
请参阅:
CStatic::SetBitmap, STM_GETIMAGE, Bitmaps
CStatic::GetCursor
HCURSOR GetCursor( );
返回值:
返回一个当前图标句柄。如果没有设置图标则返回NULL。
说明:
此成员函数用来获取先前用
SetCursor设置的与CStatic关联的光标句柄。
请参阅:
CStatic::SetCursor, STM_GETIMAGE, Cursors
CStatic::GetEnhMetaFile
HENHMETAFILE GetEnhMetaFile( ) const;
返回值:
返回一个当前增强
图元文件句柄。如果没有设置增强的图元文件则返回NULL。
说明:
此成员函数用来获取先前用SetEnhMetaFile设置的与CStatic关联的增强的图元文件句柄。
请参阅:
CStatic::SetEnhMetaFile, STM_GETIMAGE
CStatic::GetIcon
HICON GetIcon( ) const;
返回值:
返回一个当前图标句柄。如果没有设置增强的图标则返回NULL。
说明:
此成员函数用来获取先前用
SetIcon设置的与CStatic关联的图标句柄。
请参阅:
CStatic::SetIcon, STM_GETICON, Icons
CStatic::SetBitmap
HBITMAP SetBitmap( HBITMAP hBitmap );
返回值:
返回先前与此
静态控件关联的位图的句柄。如果没有与此静态控件关联的位图,则返回NULL。
参数:
说明:
此成员函数用来将一个新的位图与此静态控件关联。
这个
位图将被自动绘制在此静态控件中。缺省的,它将被绘制在左上角,并且此
静态控件将根据位图的大小来调整尺寸。
你可以使用不同的窗口和静态控件风格,包括下列值:
请参阅:CStatic::GetBitmap, STM_SETIMAGE, Bitmaps
CStatic::SetCursor
HCURSOR SetCursor( HCURSOR hCursor );
返回值:
返回先前与此
静态控件关联的光标的句柄。如果没有与此静态控件关联的光标,则返回NULL。
参数:
说明:
此成员函数用来将一个新的光标与此静态控件关联。
这个光标将被自动绘制在此
静态控件中。缺省的,它将被绘制在左上角,并且此静态控件将根据
光标的大小来调整尺寸。
你可以使用不同的窗口和静态控件风格,包括下列值:
请参阅:CStatic::GetCursor, STM_SETIMAGE, Cursors
CStatic::SetEnhMetaFile
HENHMETAFILE SetEnhMetaFile( HENHMETAFILE hMetaFile );
返回值:
返回先前与此
静态控件关联的增强
图元文件的句柄。如果没有与此静态控件关联的增强图元文件,则返回NULL。
参数:
说明:
此成员函数用来将一个新的增强图元文件与此静态控件关联。
这个增强图元文件将被自动绘制在此静态控件中。缺省的,它将被绘制在左上角,并且此静态控件将根据增强图元文件的大小来调整尺寸。
请参阅:CStatic::GetEnhMetaFile, STM_SETIMAGE
CStatic::SetIcon
HICON SetIcon( HICON hIcon );
返回值:
返回先前与此静态控件关联的图标的句柄。如果没有与此静态控件关联的图标,则返回NULL。
参数:
说明:
此成员函数用来将一个新的图标与此静态控件关联。
这个图标将被自动绘制在此静态控件中。缺省的,它将被绘制在左上角,并且此静态控件将根据图标的大小来调整尺寸。
你可以使用不同的窗口和静态控件风格,包括下列值:
请参阅:CStatic::GetIcon, STM_SETICON, Icons
基本使用
CStatic 继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、
指针(
cursor)、位图和增强图文元件. 通常
静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。
显示文本
如果文本不变,可以直接设置其 Caption。如果想在运行过程中改变其显示文本,可以用如下方式:
CStatic *pStatic=(CStatic*)
GetDlgItem(IDC_STATIC);
显示图标
如果要显示图标,则必须要设置窗口属性为 SS_ICON 和 SS_CENTERIMAGE,实例代码如下:
CStatic* pStatic = (CStatic*)
GetDlgItem(IDC_STATIC);
LONG style = 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);
LONG style = GetWindowLong(pStatic->
GetSafeHwnd(), GWL_STYLE);
style |= SS_ICON; style |= SS_CENTERIMAGE; SetWindowLong(pStatic->GetSafeHwnd(),GWL_STYLE,style);
显示位图
如果要显示图标,则必须要设置窗口属性为 SS_BITMAP 和 SS_CENTERIMAGE,实例代码如下:
//获得指向
静态控件的
指针 CStatic *pStatic=(CStatic*)
GetDlgItem(IDC_STATIC);
//获得位图句柄 HBITMAP hBitmap=::
LoadBitmap(
AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP2));
//LONG result = SetWindowLong(pStatic->
GetSafeHwnd(),GWL_STYLE,style);
//设置
静态控件的样式,使其可以使用位图,并试位标显示使居中 pStatic->
ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
//设置静态控件显示位图 pStatic->SetBitmap(hBitmap);