![]()
CStatic继承于CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针 (cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为
SS_NOTIFY,他可以通知其父窗口的 击 鼠标事件。
一。CStatic用于显示文本
如果文本不变,可以直接设置其Caption。如果想在运行过程中改变其显示文本,可以用如下方式:
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC);
pStatic->SetWindowText("Just a Test of Static Control!");
二。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);
//获得位图句柄
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);