CStatic

CStatic類提供了一個Windows靜態控制項的性能。一個靜態控制項用來顯示一個文本字元串,框,矩形,圖示,游標,點陣圖,或增強的圖元檔案

基本介紹

  • 外文名:CStatic
  • 特點:提供了Windows靜態控制項的性能
  • 用途:顯示文本字元串,框,矩形等
  • 構造:CStatic構造一個CStatic對象
簡介,CStatic控制項的基本使用,CStatic 用於顯示文本,CStatic 用於顯示圖示,CStatic 用於顯示指針cursor,CStatic 用於顯示點陣圖,

簡介

CStatic
CWnd
└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設定的增強圖元檔案的句柄
CStatic::Create
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& 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
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。
參數:
hBitmap要繪製在此靜態控制項中的點陣圖句柄。
說明:
此成員函式用來將一個新的點陣圖與此靜態控制項關聯。
這個點陣圖將被自動繪製在此靜態控制項中。預設的,它將被繪製在左上角,並且此靜態控制項將根據點陣圖的大小來調整尺寸。
你可以使用不同的視窗和靜態控制項風格,包括下列值:
·SS_BITMAP此風格總是用於點陣圖。·SS_CENTERIMAGE用來在此靜態控制項中居中。如果圖像比靜態控制項大,則它將被剪下掉。如果它比靜態控制項小,則圖像周圍的空間將被用點陣圖左上角的像素的顏色填充。
請參閱:CStatic::GetBitmap, STM_SETIMAGE, Bitmaps
CStatic::SetCursor
HCURSOR SetCursor( HCURSOR hCursor );
返回值:
返回先前與此靜態控制項關聯的游標的句柄。如果沒有與此靜態控制項關聯的游標,則返回NULL。
參數:
hCursor要繪製在此靜態控制項中的游標句柄。
說明:
此成員函式用來將一個新的游標與此靜態控制項關聯。
這個游標將被自動繪製在此靜態控制項中。預設的,它將被繪製在左上角,並且此靜態控制項將根據游標的大小來調整尺寸。
你可以使用不同的視窗和靜態控制項風格,包括下列值:
·SS_ICON此風格總是用於點陣圖。·SS_CENTERIMAGE用來在此靜態控制項中居中。如果圖像比靜態控制項大,則它將被剪下掉。如果它比靜態控制項小,則圖像周圍的空間將被用點陣圖左上角的像素顏色填充。
請參閱:CStatic::GetCursor, STM_SETIMAGE, Cursors
CStatic::SetEnhMetaFile
HENHMETAFILE SetEnhMetaFile( HENHMETAFILE hMetaFile );
返回值:
返回先前與此靜態控制項關聯的增強圖元檔案的句柄。如果沒有與此靜態控制項關聯的增強圖元檔案,則返回NULL。
參數:
hMetaFile要繪製在此靜態控制項中的增強圖元檔案句柄。
說明:
此成員函式用來將一個新的增強圖元檔案與此靜態控制項關聯。
這個增強圖元檔案將被自動繪製在此靜態控制項中。預設的,它將被繪製在左上角,並且此靜態控制項將根據增強圖元檔案的大小來調整尺寸。
你可以使用不同的視窗和靜態控制項風格,包括下列值:
·SS_ENHMETAFILE此風格總是用於點陣圖。
請參閱:CStatic::GetEnhMetaFile, STM_SETIMAGE
CStatic::SetIcon
HICON SetIcon( HICON hIcon );
返回值:
返回先前與此靜態控制項關聯的圖示的句柄。如果沒有與此靜態控制項關聯的圖示,則返回NULL。
參數:
hIcon要繪製在此靜態控制項中的圖示句柄。
說明:
此成員函式用來將一個新的圖示與此靜態控制項關聯。
這個圖示將被自動繪製在此靜態控制項中。預設的,它將被繪製在左上角,並且此靜態控制項將根據圖示的大小來調整尺寸。
你可以使用不同的視窗和靜態控制項風格,包括下列值:
·SS_ICON此風格總是用於圖示。·SS_CENTERIMAGE用來在此靜態控制項中居中。如果圖像比靜態控制項大,則它將被剪下掉。如果它比靜態控制項小,則圖像周圍的空間將被用點陣圖左上角的像素顏色填充。
請參閱:CStatic::GetIcon, STM_SETICON, Icons

CStatic控制項的基本使用

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);

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);

相關詞條

熱門詞條

聯絡我們