CStatic类简介

CStatic

CStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串、框、矩形、图标、光标、位图或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。

创建一个静态控件分两步。首先,调用构造函数来构造此CStatic对象,然后调用Create成员函数来创建此静态控件并将它与该CStatic对象连接。如果你是在一个对话框中创建了一个静态控件(通过一个对话框资源),则当用户关闭这个对话框时,此CStatic对象被自动销毁。如果你是在一个窗口中创建了一个CStatic对象,则必须由你来销毁它。在一个窗口的堆栈中创建的CStatic对象将自动被销毁。如果你是使用new函数在堆中创建CStatic对象,则当你使用完后,必须调用delete来销毁这个CStatic对象。

#include<afxwin.h>

CStatic类成员

构造:CStatic构造一个CStatic对象

初始化:Create创建Windows静态控件并将它与该CStatic对象连接

操作符:

SetBitmap:指定要在此静态控件中显示的位图;

GetBitmap:获取先前用SetBitmap设置的位图的句柄;

SetIcon:指定一个要在此静态控件中显示的图标;

GetIcon:获取先前用SetIcon设置的图标的句柄;

SetCursor:指定要显示在此静态控件中的光标图像;

GetCursor:获取先前用SetCursor设置的光标图像的句柄;

SetEnhMetaFile:指定要显示在此静态控件中的增强的图元文件;

GetEnhMetaFile:获取先前用SetEnhMetaFile设置的增强图元文件的句柄。

BOOL Create( LPCTSTR lpszText, DWORD dwStyle, constRECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );

返回值:如果成功则返回非零值;否则返回0;

参数:lpszText指定要放置在控件中的文本。如果是NULL,则表示没有文本是可见的。dwStyle指定静态控件的窗口风格。任何静态控件风格的组合都可以用于这个控件。rect指定静态控件的位置和大小。它可以是一个RECT结构或一个CRect对象。pParentWnd指定CStatic父窗口,通常是一个CDialog对象。它不能是NULL。nID指定静态控件的控件ID。

说明:可以将下列窗口风格用于一个静态控件:

·WS_CHILD总要使用。

·WS_VISIBLE经常使用。

·WS_DISABLED很少使用。

如果你准备在此静态控件中显示一个位图,光标,图标,或图元文件,你必须使用下列风格之一:

·SS_BITMAP此风格用于位图。

·SS_ICON此风格用于光标和图标。

·SS_ENHMETAFILE此风格用于增强的图元文件。

对于光标,位图,或图标,你也可以使用下面的风格:

·SS_CENTERIMAGE用来使静态控件中的图像居中。

CStatic( );

说明:此成员函数用来构造一个CStatic对象。

HBITMAP GetBitmap( ) const;

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

说明:此成员函数用来获取先前用SetBitmap设置的与CStatic关联的位图句柄。

HCURSOR GetCursor( );

返回值:返回一个当前图标句柄。如果没有设置图标则返回NULL。

说明:此成员函数用来获取先前用SetCursor设置的与CStatic关联的光标句柄。

HENHMETAFILE GetEnhMetaFile( ) const;

返回值:返回一个当前增强图元文件句柄。如果没有设置增强的图元文件则返回NULL。

说明:此成员函数用来获取先前用SetEnhMetaFile设置的与CStatic关联的增强的图元文件句柄。

HICON GetIcon( ) const;

返回值:返回一个当前图标句柄。如果没有设置增强的图标则返回NULL。

说明:此成员函数用来获取先前用SetIcon设置的与CStatic关联的图标句柄。

HBITMAP SetBitmap( HBITMAP hBitmap );

返回值:返回先前与此静态控件关联的位图的句柄。如果没有与此静态控件关联的位图,则返回NULL。

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

说明:此成员函数用来将一个新的位图与此静态控件关联。

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

你可以使用不同的窗口和静态控件风格,包括下列值:

·SS_BITMAP此风格总是用于位图。

·SS_CENTERIMAGE用来在此静态控件中居中。如果图像比静态控件大,则它将被剪切掉。如果它比静态控件小,则图像周围的空间将被用位图左上角的像素的颜色填充。

HCURSOR SetCursor( HCURSOR hCursor );

返回值:返回先前与此静态控件关联的光标的句柄。如果没有与此静态控件关联的光标,则返回NULL。

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

说明:此成员函数用来将一个新的光标与此静态控件关联。

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

你可以使用不同的窗口和静态控件风格,包括下列值:

·SS_ICON此风格总是用于位图。

·SS_CENTERIMAGE用来在此静态控件中居中。如果图像比静态控件大,则它将被剪切掉。如果它比静态控件小,则图像周围的空间将被用位图左上角的像素颜色填充。

HENHMETAFILE SetEnhMetaFile( HENHMETAFILE hMetaFile );

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

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

说明:此成员函数用来将一个新的增强图元文件与此静态控件关联。

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

你可以使用不同的窗口和静态控件风格,包括下列值:

·SS_ENHMETAFILE此风格总是用于位图。

HICON SetIcon( HICON hIcon );

返回值:返回先前与此静态控件关联的图标的句柄。如果没有与此静态控件关联的图标,则返回NULL。

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

说明:此成员函数用来将一个新的图标与此静态控件关联。

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

你可以使用不同的窗口和静态控件风格,包括下列值:

·SS_ICON此风格总是用于图标。

·SS_CENTERIMAGE用来在此静态控件中居中。如果图像比静态控件大,则它将被剪切掉。如果它比静态控件小,则图像周围的空间将被用位图左上角的像素颜色填充。

CStatic控件的基本使用

CStatic继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。

CStatic 用于显示文本

如果文本不变,可以直接设置其 Caption。如果想在运行过程中改变其显示文本,可以用如下方式:

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

pStatic->SetWindowText("Just a Test of StaticControl!");

CStatic 用于显示图标

如果要显示图标,则必须要设置窗口属性为 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);

CStatic 用于显示指针cursor

如果要显示 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);

pStatic->SetCursor(OnQueryDragIcon());

CStatic 用于显示位图

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

//获得指向静态控件的指针 CStatic*pStatic=(CStatic*)GetDlgItem(IDC_STATIC);

//获得位图句柄 HBITMAPhBitmap=::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);

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值