-
CStatic
鎖定
- 外文名
- CStatic
- 特 點
- 提供了Windows靜態控件的性能
- 用 途
- 顯示文本字符串,框,矩形等
- 構 造
- CStatic構造一個CStatic對象
CStatic簡介
CStatic
└CWnd | └CStatic |
它可以被用來作為標籤,框,或用來分隔其它的控件。一個靜態控件不接收輸入,也不提供輸出;但是,如果它是用SS_NOTIFY風格創建的,則它可以通知其父有關設備點擊的消息。創建一個靜態控件分兩步。首先,調用構造函數來構造此CStatic對象,然後調用Create成員函數來創建此靜態控件並將它與該CStatic對象連接。如果你是在一個對話框中創建了一個靜態控件(通過一個對話框資源),則當用户關閉這個對話框時,此CStatic對象被自動銷燬。如果你是在一個窗口中創建了一個CStatic對象,則必須由你來銷燬它。在一個窗口的堆棧中創建的CStatic對象將自動被銷燬。如果你是使用new函數在堆中創建CStatic對象,則當你使用完後,必須調用delete來銷燬這個CStatic對象。
#include <afxwin.h>
CStatic類成員
構造
CStatic構造一個CStatic對象 |
初始化
Create創建Windows靜態控件並將它與該CStatic對象連接 |
CStatic::Create
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
返回值:如果成功則返回非零值;否則返回0;
參數:
説明:可以將下列窗口風格用於一個靜態控件:
·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 );
返回值:
參數:
hMetaFile要繪製在此靜態控件中的增強圖元文件句柄。 |
説明:
此成員函數用來將一個新的增強圖元文件與此靜態控件關聯。
這個增強圖元文件將被自動繪製在此靜態控件中。缺省的,它將被繪製在左上角,並且此靜態控件將根據增強圖元文件的大小來調整尺寸。
你可以使用不同的窗口和靜態控件風格,包括下列值:
·SS_ENHMETAFILE此風格總是用於位圖。 |
請參閲:CStatic::GetEnhMetaFile, STM_SETIMAGE
CStatic::SetIcon
HICON SetIcon( HICON hIcon );
返回值:
返回先前與此靜態控件關聯的圖標的句柄。如果沒有與此靜態控件關聯的圖標,則返回NULL。
參數:
hIcon要繪製在此靜態控件中的圖標句柄。 |
説明:
此成員函數用來將一個新的圖標與此靜態控件關聯。
這個圖標將被自動繪製在此靜態控件中。缺省的,它將被繪製在左上角,並且此靜態控件將根據圖標的大小來調整尺寸。
你可以使用不同的窗口和靜態控件風格,包括下列值:
請參閲: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,則必須要設置窗口屬性為 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,實例代碼如下:
//獲得位圖句柄 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);
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:19次歷史版本
- 最近更新: 泡沫之夏吹泡泡