CMFCToolBarImages 類別
工具列上的影像。 類別 CMFCToolBarImages
會管理從應用程式資源或檔案載入的工具列影像。
如需更多詳細資料,請參閱 Visual Studio 安裝位置下之 VC\atlmfc\src\mfc 資料夾中的原始程式碼。
語法
class CMFCToolBarImages : public CObject
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCToolBarImages::CMFCToolBarImages | 建構 CMFCToolBarImages 物件。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
CMFCToolBarImages::P reMultiplyAlpha |
資料成員
名稱 | 描述 |
---|---|
CMFCToolBarImages::m_bDisableTrueColorAlpha | True 是表示 如果停用 truecolor Alpha 混合 (32 位色彩)。 |
備註
由管理 CMFCToolbarImages
之工具列影像的完整點圖是由固定大小的一或多個小型工具列影像(按鈕)所組成。
範例
下列範例示範如何使用 類別中的CMFCToolBarImages
各種方法設定 CMFCToolBarImages
物件。 此範例示範如何設定工具列影像的大小、載入影像,以及設定影像的透明色彩。 此代碼段是Visual Studio示範範例的一部分。
CMFCToolBarImages m_Image;
m_Image.SetImageSize(CSize(32, 32));
m_Image.Load(IDR_START);
m_Image.SetTransparentColor(RGB(255, 0, 255));
繼承階層架構
CMFCToolBarImages
需求
標頭: afxtoolbarimages.h
CMFCToolBarImages::AdaptColors
void AdaptColors(
COLORREF clrBase,
COLORREF clrTone);
參數
[in] clrBase
[in] clrTone
備註
CMFCToolBarImages::AddIcon
將圖示新增至工具列影像清單。
int AddIcon(
HICON hIcon,
BOOL bAlphaBlend=FALSE);
參數
hIcon
[in] 要加入圖示的控制代碼。
bAlphaBlend
[in]如果此圖示與Alpha混合搭配使用,則為TRUE;否則為 FALSE。
傳回值
如果方法成功,則為工具欄影像的以零起始的索引;否則為 -1。
CMFCToolBarImages::AddImage
將點陣圖新增至工具列影像。
int AddImage(
HBITMAP hbmp,
BOOL bSetBitPerPixel=FALSE);
int AddImage(
const CMFCToolBarImages& imageList,
int nIndex);
參數
hbmp
[in]要加入之點陣圖的句柄。
bSetBitPerPixel
[in]如果 CMFCToolBarImages
物件使用新影像的色彩深度(圖元/圖元),則為TRUE;如果 CMFCToolbarImages
物件保留目前的色彩深度,則為 FALSE。
imageList
[in]對象的參考 CMFCToolbarImages
,其中包含要加入的影像。
nIndex
[in]要加入之影像來源 CMFCToolbarImages
物件中的索引。
傳回值
成功新增位圖之後,物件所維護的工具欄影像 CMFCToolBarImages
數目;如果作業失敗,則為 -1。
CMFCToolBarImages::CleanUp
static void __stdcall CleanUp();
備註
CMFCToolBarImages::Clear
釋放 CMFCToolbarImages 物件配置的系統資源。
void Clear();
CMFCToolBarImages::CMFCToolBarImages
建構 CMFCToolBarImages
物件。
CMFCToolBarImages();
備註
CMFCToolBarImages
建構 物件、初始化其轉譯引擎,並將影像大小設定為預設值 16x15 圖元。 使用 CMFCToolBarImages::SetImageSize 來變更影像大小,再新增影像。
CMFCToolBarImages::CopyImageToClipboard
BOOL CopyImageToClipboard(int iImage);
參數
[in] iImage
傳回值
備註
CMFCToolBarImages::CopyTo
BOOL CopyTo(CMFCToolBarImages& imageList);
參數
[in] imageList
傳回值
備註
CMFCToolBarImages::CreateFromImageList
從 CImageList 類別 物件初始化工具列影像。
BOOL CreateFromImageList(const CImageList& imageList);
參數
imageList
[in]要作為工具列影像來源的影像清單。
傳回值
一律會傳回 TRUE。
備註
使用此函式,從外部影像清單快速初始化工具列影像清單。
CMFCToolBarImages::CreateRegionFromImage
static HRGN __stdcall CreateRegionFromImage(
HBITMAP bmp,
COLORREF clrTransparent);
參數
[in] bmp
[in] clrTransparent
傳回值
備註
CMFCToolBarImages::D eleteImage
從工具列影像中刪除具有指定索引的用戶定義影像。
BOOL DeleteImage(int iImage);
參數
iImage
[in]指定要刪除之影像的以零起始的索引。
傳回值
如果已成功刪除映像,則為TRUE;FALSE 表示影像索引無效、 CMFCToolbarImages
對象為暫時性、 CMFCToolbarImages
物件不包含使用者定義的影像,或發生其他錯誤。
CMFCToolBarImages::D raw
繪製單一工具列影像。
BOOL Draw(
CDC* pDC,
int x,
int y,
int iImageIndex,
BOOL bHilite=FALSE,
BOOL bDisabled=FALSE,
BOOL bIndeterminate=FALSE,
BOOL bShadow=FALSE,
BOOL bInactive=FALSE,
BYTE alphaSrc=255);
參數
pDC
[in]裝置內容的指標。
x
[in]要繪製影像之矩形左側的 X 座標。
y
[in]要繪製影像之矩形頂端的 Y 座標。
iImageIndex
[in]要顯示之影像之以零起始的索引。
bHilite
[in]如果要反白顯示影像,則為TRUE;否則為 FALSE。
bDisabled
[in]如果影像要以停用的樣式繪製,則為TRUE;否則為 FALSE。
bIndeterminate
[in]如果影像要以不確定的狀態樣式繪製,則為TRUE;否則為 FALSE。
bShadow
[in]如果影像要以陰影繪製,則為TRUE;否則為 FALSE。
b 非使用中
[in]如果影像要以非使用中狀態樣式繪製,則為TRUE;否則為 FALSE。
alphaSrc
[in]Alpha 色板 (不透明度) 值。 值為 255 表示影像繪製不透明。 值為 0 表示影像繪製為透明。 此值僅適用於 32 位色彩影像,以及顯示 Windows Vista 玻璃樣式的影像。
傳回值
如果成功顯示指定的影像,則為TRUE;如果影像索引無效或發生其他錯誤,則為 FALSE。
CMFCToolBarImages::D rawEx
BOOL DrawEx(
CDC* pDC,
CRect rect,
int iImageIndex,
ImageAlignHorz horzAlign = ImageAlignHorzLeft,
ImageAlignVert vertAlign = ImageAlignVertTop,
CRect rectSrc = CRect(0, 0, 0, 0),
BYTE alphaSrc = 255);
參數
[in] pDC
[in] rect
[in] iImageIndex
[in] horzAlign
[in] vertAlign
[in] rectSrc
[in] alphaSrc
傳回值
備註
CMFCToolBarImages::EnableRTL
static void __stdcall EnableRTL(BOOL bIsRTL = TRUE);
參數
[in] bIsRTL
備註
CMFCToolBarImages::EndDrawImage
藉由呼叫 CMFCToolBarImages::D raw,釋放 CMFCToolBarImages::P repareDrawImage 之後所配置的系統資源。
void EndDrawImage(CAfxDrawState& ds);
參數
ds
[in]傳遞至 PrepareDrawImage
方法之 CAfxDrawState
對象的參考。
CMFCToolBarImages::ExtractIcon
傳回工具列影像中具有指定影像索引的圖示。
HICON ExtractIcon(int nIndex);
參數
nIndex
[in]影像清單中要擷取為圖示之影像的以零起始的索引。
傳回值
擷取圖示的句柄,如果 nIndex 超出範圍,則為 NULL。
CMFCToolBarImages::FillDitheredRect
以工具列背景色彩填滿矩形。
static void FillDitheredRect(
CDC* pDC,
const CRect& rect);
參數
pDC
[in]裝置內容的指標。
rect
[in]要填滿之矩形的座標。
備註
使用此方法,將矩形填滿為系統色彩的平均值,COLOR_BTNFACE和COLOR_BTNHIGHLIGHT。 如果系統使用 256 或更少的色彩,矩形會改為填滿這兩種色彩的任一圖案。
CMFCToolBarImages::GetAlwaysLight
BOOL GetAlwaysLight() const;
傳回值
備註
CMFCToolBarImages::GetCount
傳回工具列影像清單中的影像數目。
int GetCount() const;
傳回值
物件中的 CMFCToolBarImages
影像數目。
CMFCToolBarImages::GetDisabledImageAlpha
傳回用於停用影像的Alpha色板 (不透明度) 值。
static BYTE GetDisabledImageAlpha();
傳回值
目前的Alpha色板值。
備註
您可以呼叫 CMFCToolBarImages::SetDisabledImageAlpha 來變更 Alpha 色板值。
CMFCToolBarImages::GetFadedImageAlpha
static BYTE __stdcall GetFadedImageAlpha();
傳回值
備註
CMFCToolBarImages::GetImageSize
擷取儲存在記憶體中的工具列影像大小(來源大小),或在螢幕上繪製的工具欄影像大小(目的地大小)。
SIZE GetImageSize(BOOL bDest=FALSE) const;
參數
bDest
[in]TRUE 可擷取目的地大小;FALSE 可擷取來源影像大小。
傳回值
SIZE
結構,指定以像素為單位的影像大小。
備註
來源影像的大小是儲存在 CMFCToolbarImages 物件中的影像大小。 您可以呼叫 CMFCToolBarImages::SetImageSize 來設定來源大小。 預設值為 16x15 像素。
根據預設,目的地映射大小會0x0。 當您呼叫 CMFCToolBarImages::P repareDrawImage 時,您可以指定目的地大小。 CMFCToolBarImages::EndDrawImage 方法會將目的地大小重設為預設值。
CMFCToolBarImages::GetImageWell
傳回包含所有工具列影像的點陣圖句柄。
HBITMAP GetImageWell() const;
傳回值
包含工具列影像之點陣圖的句柄。
備註
工具欄影像會儲存在稱為 影像的單一位圖中。 若要在影像中尋找工具列影像,請將影像的索引乘以工具欄影像的寬度(請參閱 CMFCToolBarImages::GetImageSize),以取得影像內部影像的水準位移。
CMFCToolBarImages::GetImageWellLight
HBITMAP GetImageWellLight() const;
傳回值
備註
CMFCToolBarImages::GetLastImageRect
CRect GetLastImageRect() const;
傳回值
備註
CMFCToolBarImages::GetLightPercentage
int GetLightPercentage() const;
傳回值
備註
CMFCToolBarImages::GetMapTo3DColors
BOOL GetMapTo3DColors() const;
傳回值
備註
CMFCToolBarImages::GetMask
HBITMAP GetMask(int iImage);
參數
[in] iImage
傳回值
備註
CMFCToolBarImages::GetResourceOffset
傳回指定資源識別碼的影像索引。
int GetResourceOffset(UINT uiResId) const;
參數
uiResId
[in]映射資源標識碼。
傳回值
如果方法成功,則為影像索引;如果具有指定資源標識碼的映像不存在,則為 -1。
CMFCToolBarImages::GetTransparentColor
COLORREF GetTransparentColor() const;
傳回值
備註
CMFCToolBarImages::GrayImages
將工具列影像呈現灰色,使其看起來已停用。
BOOL GrayImages(int nGrayImageLuminancePercentage);
參數
nGrayImageLuminancePercentage
[in]亮度百分比。
傳回值
如果集合中的影像已成功呈現灰色,則為TRUE;否則為 FALSE。
備註
此方法會藉由平均每個像素的紅色、綠色和藍色元件來修改工具欄影像,並將結果乘以 nGrayImageLuminancePercentage 除以 100。 如果 nGrayImageLuminancePercentage 為零或負數,則會改用預設值 130。
注意
如果您想要復原變更,您必須從來源重載映像。 您可以呼叫 CMFCToolBarImages::Load 或 CMFCToolBarImages::UpdateImages::UpdateImage 或呼叫 CMFCToolBarImages::Clear,然後藉由呼叫 CMFCToolBarImages::AddIcon 或 CMFCToolBarImages::AddImage 再次新增映射。
CMFCToolBarImages::Is32BitTransparencySupported
指定作業系統是否支援 32 位 Alpha 混合。
static BOOL Is32BitTransparencySupported();
傳回值
如果支援 32 位 Alpha 混合,則為 TRUE;否則為 FALSE。
備註
使用此靜態方法來判斷操作系統是否支援 32 位 Alpha 混合。 Windows 2000 和更新版本支援此功能。
CMFCToolBarImages::IsPreMultiplyAutoCheck
BOOL IsPreMultiplyAutoCheck() const;
傳回值
備註
CMFCToolBarImages::IsReadOnly
指定工具列影像是否為唯讀。
BOOL IsReadOnly() const;
傳回值
如果工具列影像是只讀的,則為TRUE,否則為 FALSE。
備註
當具有工具列影像的位圖從唯讀檔案載入,或使用 方法複製點陣圖時,對像是 CMFCToolbarImages
唯讀的 CMFCToolBarImages::CopyTemp
。
CMFCToolBarImages::IsRTL
指定是否啟用由右至左 (RTL) 支援。
static BOOL IsRTL();
傳回值
如果已啟用 RTL 支援,則為 TRUE;否則為 FALSE。
備註
當應用程式當地語系化為從右至左讀取的語言時,會使用 RTL 支援,例如阿拉伯文、希伯來文、波斯文或烏爾都語。
CMFCToolBarImages::IsUserImagesList
指定這個工具列影像集是否包含使用者定義的影像。
BOOL IsUserImagesList() const;
傳回值
如果 CMFCToolBarImages
物件包含使用者定義的工具列影像,則為TRUE,否則為 FALSE。
CMFCToolBarImages::IsValid
指出這組工具列影像是否包含有效的工具列影像。
BOOL IsValid() const;
傳回值
如果 CMFCToolBarImages
物件有效,則為TRUE;否則為 FALSE。
備註
當 CMFCToolBarImages
物件具有工具列影像的點陣圖句柄為NULL時,對象無效。
CMFCToolBarImages::Load
從系統資源或檔案載入工具列影像。
BOOL Load(
UINT uiResID,
HINSTANCE hinstRes=NULL,
BOOL bAdd=FALSE);
BOOL Load(
LPCTSTR lpszBmpFileName,
DWORD nMaxFileSize = 819200);
參數
uiResID
[in]位圖資源的標識碼。
hinstRes
[in]資源 DLL 的實例。
bAdd
[in]TRUE 表示將載入的點陣圖新增至現有的點陣圖,或 FALSE 來取代現有的點陣圖。
lpszBmpFileName
[in]要從中載入點陣圖之磁碟檔案的路徑。
nMaxFileSize
[in]位圖檔案中的位元元陣數目上限;或 0 以載入點陣圖,而不論檔案大小為何。 如果檔案的大小超過這個大小上限,此方法會傳回 FALSE,而且不會載入位圖。
傳回值
如果點圖已成功載入,則為TRUE;否則為 FALSE。
備註
如果檔案具有只讀屬性,映像清單會標示為唯讀。
CMFCToolBarImages::LoadStr
BOOL LoadStr(
LPCTSTR lpszResourceName,
HINSTANCE hinstRes = NULL,
BOOL bAdd = FALSE);
參數
[in] lpszResourceName
[in] hinstRes
[in] bAdd
傳回值
備註
CMFCToolBarImages::MapFromSysColor
static COLORREF __stdcall MapFromSysColor(
COLORREF color,
BOOL bUseRGBQUAD = TRUE);
參數
[in] 顏色
[in] bUseRGBQUAD
傳回值
備註
CMFCToolBarImages::MapTo3dColors
BOOL MapTo3dColors(
BOOL bUseRGBQUAD = TRUE,
COLORREF clrSrc = (COLORREF)-1,
COLORREF clrDest = (COLORREF)-1);
參數
[in] bUseRGBQUAD
[in] clrSrc
[in] clrDest
傳回值
備註
CMFCToolBarImages::MapToSysColor
static COLORREF __stdcall MapToSysColor(
COLORREF color,
BOOL bUseRGBQUAD = TRUE);
參數
[in] 顏色
[in] bUseRGBQUAD
傳回值
備註
CMFCToolBarImages::MapToSysColorAlpha
static COLORREF __stdcall MapToSysColorAlpha(COLORREF color);
參數
[in] 顏色
傳回值
備註
CMFCToolBarImages::Mirror
使用其水平鏡像影像取代工具欄影像。
BOOL Mirror();
傳回值
如果已成功鏡像影像,則為TRUE;否則為 FALSE。
備註
這個方法可用來支援由右至左寫入系統。
CMFCToolBarImages::MirrorBitmap
以其水平鏡像影像取代位圖。
static BOOL MirrorBitmap(
HBITMAP& hbmp,
int cxImage);
參數
hbmp
[in, out]要鏡像之點陣圖的句柄。
cxImage
[in]影像寬度以像素為單位。
傳回值
如果已成功鏡像影像,則為TRUE;否則為 FALSE。
備註
此函式用來支援由右至左寫入系統。
CMFCToolBarImages::MirrorBitmapVert
static BOOL __stdcall MirrorBitmapVert(
HBITMAP& hbmp,
int cyImage);
參數
[in] hbmp
[in] cyImage
傳回值
備註
CMFCToolBarImages::MirrorVert
BOOL MirrorVert();
傳回值
備註
CMFCToolBarImages::OnSysColorChange
void OnSysColorChange();
備註
CMFCToolBarImages::P reMultiplyAlpha
static BOOL __stdcall PreMultiplyAlpha(
HBITMAP hbmp,
BOOL bAutoCheckPremlt);
BOOL PreMultiplyAlpha(HBITMAP hbmp);
參數
[in] hbmp
[in] bAutoCheckPremlt
傳回值
備註
CMFCToolBarImages::m_bDisableTrueColorAlpha
True 是表示 如果停用 truecolor Alpha 混合 (32 位色彩)。
static BOOL m_bDisableTrueColorAlpha;
備註
將此成員變數設定為 FALSE,以啟用工具列影像的 truecolor Alpha 混合。
預設值為TRUE 以取得回溯相容性。
CMFCToolBarImages::P repareDrawImage
配置以指定大小繪製工具列影像所需的資源。
BOOL PrepareDrawImage(
CAfxDrawState& ds,
CSize sizeImageDest=CSize(0,
0)
BOOL bFadeInactive=FALSE);
參數
ds
[in]結構的參考 CAfxDrawState
,它會儲存影像轉譯階段之間的配置資源。
sizeImageDest
[in]指定目的地映像的大小。
bFadeInactive
[in]如果想要繪製非作用中的影像淡出,則為TRUE。
傳回值
如果繪製工具列影像所需的資源已順利配置,則為TRUE,否則為 FALSE。
備註
呼叫此方法之後,您可以呼叫 CMFCToolBarImages::D raw 任意次數。 完成繪圖之後,您必須呼叫 CMFCToolBarImages::EndDrawImage 以釋放 所 PrepareDrawImage
配置的資源。
CMFCToolBarImages::Save
如果這個工具列影像集包含使用者定義的影像,請將工具列影像儲存在檔案中。
BOOL Save(LPCTSTR lpszBmpFileName=NULL);
參數
lpszBmpFileName
磁碟檔案的路徑。
傳回值
如果已成功儲存工具列影像,則為TRUE;否則為 FALSE。
備註
呼叫這個方法,將使用者定義的映像儲存到磁碟檔案中。 如果 lpszBmpFileName 為 NULL,此方法會將點陣圖儲存到 CMFCToolBarImages::Load 方法載入點圖的檔案中。
CMFCToolBarImages::SetAlwaysLight
void SetAlwaysLight(BOOL bAlwaysLight = TRUE);
參數
[in] bAlwaysLight
備註
CMFCToolBarImages::SetDisabledImageAlpha
設定用於停用影像的 Alpha 色板 (不透明度) 值。
static void SetDisabledImageAlpha(BYTE nValue);
參數
nValue
[in]Alpha 色板的新值。
備註
使用這個方法可設定已停用影像的自定義 Alpha 值。 默認值為 127,導致停用的按鈕影像成為半透明。 如果您設定值為 0,則停用的影像將會完全透明。 如果您設定 255 的值,則停用的影像將會完全不透明。
CMFCToolBarImages::SetFadedImageAlpha
static void __stdcall SetFadedImageAlpha(BYTE nValue);
參數
[in] nValue
備註
CMFCToolBarImages::SetImageSize
設定每個工具列影像的大小(來源大小)。
void SetImageSize(
SIZE sizeImage,
BOOL bUpdateCount=FALSE);
參數
sizeImage
[in]工具列影像的新大小。
備註
工具欄影像的大小預設為16x15像素。 如果您想要使用不同的大小的工具列影像,請呼叫此方法。
CMFCToolBarImages::SetLightPercentage
void SetLightPercentage(int nValue);
參數
[in] nValue
備註
CMFCToolBarImages::SetMapTo3DColors
void SetMapTo3DColors(BOOL bMapTo3DColors);
參數
[in] bMapTo3DColors
備註
CMFCToolBarImages::SetPreMultiplyAutoCheck
void SetPreMultiplyAutoCheck(BOOL bAuto = TRUE);
參數
[in] bAuto
備註
CMFCToolBarImages::SetSingleImage
void SetSingleImage();
備註
CMFCToolBarImages::SetTransparentColor
設定工具列影像的透明色彩。
COLORREF SetTransparentColor(COLORREF clrTransparent);
參數
clrTransparent
[in]RGB 值。
傳回值
先前的透明色彩。
備註
當您或架構呼叫 CMFCToolBarImages::D raw 時,方法不會繪製任何符合 clrTransparent 所指定色彩的圖元。
CMFCToolBarImages::UpdateImage
從點陣圖更新使用者定義的工具列影像。
BOOL UpdateImage(
int iImage,
HBITMAP hbmp);
參數
iImage
[in]要更新之映像之以零起始的索引。
hbmp
[in]要從中更新影像之位圖的句柄。
傳回值
如果已成功更新映像,則為TRUE;FALSE 表示影像清單不是使用者定義的或暫時的。
CMFCToolBarImages::ConvertTo32Bits
將底線位圖轉換成 32 個 bpp 影像。
BOOL ConvertTo32Bits(COLORREF clrTransparent = (COLORREF)-1);
參數
clrTransparent
指定底線位圖的透明色彩。
備註
CMFCToolBarImages::GetBitsPerPixel
傳回目前底線影像的解析度。
int GetBitsPerPixel() const;
傳回值
整數值,表示目前以像素為單位的底線影像解析度(bpp)。
備註
CMFCToolBarImages::GetScale
傳回底線影像的目前縮放比例。
double GetScale() const;
傳回值
值,表示目前的縮放比例。
備註
CMFCToolBarImages::IsScaled
指出底線影像是否縮放。
BOOL IsScaled () const;
傳回值
如果縮放底線影像,則為TRUE;否則為 FALSE。
備註
CMFCToolBarImages::SmoothResize
平滑地調整底線影像的大小。
BOOL SmoothResize(double dblImageScale);
參數
dblImageScale
縮放比例。
傳回值
如果重設大小成功,則為TRUE;否則為 FALSE。