AFX_GLOBAL_DATA 結構
AFX_GLOBAL_DATA
結構包含的欄位和方法,用於管理架構,或自訂應用程式外觀和行為。
語法
struct AFX_GLOBAL_DATA
成員
公用建構函式
名稱 | 描述 |
---|---|
AFX_GLOBAL_DATA::AFX_GLOBAL_DATA |
建構 AFX_GLOBAL_DATA 結構。 |
AFX_GLOBAL_DATA::~AFX_GLOBAL_DATA |
解構函式。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
AFX_GLOBAL_DATA::EnableAccessibilitySupport | 啟用或停用 Microsoft Active Accessibility 支援。 Active Accessibility 提供可靠的方法以公開使用者介面項目的相關資訊。 |
AFX_GLOBAL_DATA::IsAccessibilitySupport | 指出是否已啟用 Microsoft Active Accessibility 支援。 |
AFX_GLOBAL_DATA::IsWindowsLayerSupportAvailable | 指出作業系統是否支援層疊的視窗。 |
資料成員
名稱 | 描述 |
---|---|
AFX_GLOBAL_DATA::bIsOSAlphaBlendingSupport | 指出目前的作業系統是否支援 Alpha 混色。 |
AFX_GLOBAL_DATA::bIsWindows7 | 指出應用程式是在 Windows 7 作業系統或更高版本中執行。 |
AFX_GLOBAL_DATA::clrActiveCaptionGradient | 指定現用標題的漸層色彩。 通常用於停駐窗格。 |
AFX_GLOBAL_DATA::clrInactiveCaptionGradient | 指定非作用中現用標題的漸層色彩。 通常用於停駐窗格。 |
AFX_GLOBAL_DATA::m_bUseBuiltIn32BitIcons | 指出架構使用預先定義的 32 位元色彩圖示或較低解析度的圖示。 |
AFX_GLOBAL_DATA::m_bUseSystemFont | 指出功能表、工具列和功能區是否使用系統字型。 |
AFX_GLOBAL_DATA::m_hcurHand | 儲存手型游標的控制代碼。 |
AFX_GLOBAL_DATA::m_hcurStretch | 儲存水平延展游標的控制代碼。 |
AFX_GLOBAL_DATA::m_hcurStretchVert | 儲存垂直延展游標的控制代碼。 |
AFX_GLOBAL_DATA::m_hiconTool | 儲存工具圖示的控制代碼。 |
AFX_GLOBAL_DATA::m_nAutoHideToolBarMargin | 指定從最左邊的自動隱藏工具列到停駐列左邊的位移。 |
AFX_GLOBAL_DATA::m_nAutoHideToolBarSpacing | 指定自動隱藏工具列之間的間距。 |
AFX_GLOBAL_DATA::m_nDragFrameThicknessDock | 指定溝通停駐狀態所使用的拖曳框架粗細。 |
AFX_GLOBAL_DATA::m_nDragFrameThicknessFloat | 指定溝通浮動狀態所使用的拖曳框架粗細。 |
備註
AFX_GLOBAL_DATA
結構的大部分資料是在應用程式啟動時初始化。
繼承階層架構
AFX_GLOBAL_DATA
需求
Header: afxglobals.h
AFX_GLOBAL_DATA::bIsOSAlphaBlendingSupport
指出操作系統是否支援 Alpha 混合。
BOOL bIsOSAlphaBlendingSupport;
備註
TRUE 表示支援 Alpha 混合;否則為 FALSE。
AFX_GLOBAL_DATA::CleanUp
釋出架構配置的資源,例如筆刷、字型和 DLL。
void CleanUp();
AFX_GLOBAL_DATA::D 2D1MakeRotateMatrix
建立環繞指定點依特定角度旋轉的旋轉轉換。
HRESULT D2D1MakeRotateMatrix(
FLOAT angle,
D2D1_POINT_2F center,
D2D1_MATRIX_3X2_F *matrix);
參數
角度
順時針旋轉角度,以度為單位。
center
要旋轉的點。
matrix
當這個方法傳回時,會包含新的旋轉轉換。 您必須設定此參數的記憶體。
傳回值
如果成功,則傳回S_OK,否則傳回錯誤值。
AFX_GLOBAL_DATA::D rawParentBackground
在指定的區域中繪製控制項父代的背景。
BOOL DrawParentBackground(
CWnd* pWnd,
CDC* pDC,
LPRECT lpRect = NULL);
參數
pWnd
[in]控件視窗的指標。
pDC
[in]裝置內容的指標。
lpRect
[in]將區域限定為繪製之矩形的指標。 預設值是 NULL。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。
AFX_GLOBAL_DATA::D rawTextOnGlass
以指定佈景主題的視覺化樣式繪製指定文字。
BOOL DrawTextOnGlass(
HTHEME hTheme,
CDC* pDC,
int iPartId,
int iStateId,
CString strText,
CRect rect,
DWORD dwFlags,
int nGlowSize = 0,
COLORREF clrText = (COLORREF)-1);
參數
hTheme
[in]視窗的主題數據句柄,或 NULL。 如果此參數不是 NULL,而且支援主題,架構會使用指定的主題來繪製文字。 否則,此架構不會使用佈景主題來繪製文字。
使用 OpenThemeData 方法來建立 HTHEME。
pDC
[in]裝置內容的指標。
iPartId
[in]具有所需文字外觀的控制件元件。 如需詳細資訊,請參閱 Parts and States(組件和狀態) 表格中的 Parts 資料行。 如果此值為 0,則會使用預設字型來繪製文字;否則會使用裝置內容中所選取的字型。
iStateId
[in]具有所需文字外觀的控件狀態。 如需詳細資訊,請參閱 Parts and States(組件和狀態) 表格中的 States 資料行。
strText
[in]要繪製的文字。
rect
[in]繪製指定文字的區域界限。
dwFlags
[in]指定指定文字繪製方式之旗標的位元組合 (OR) 。
如果 hTheme 參數為 NULL
或 如果主題不受支援並啟用,CDC::D rawText 方法的 nFormat 參數會描述有效的旗標。 如果支援主題,DrawThemeTextEx 方法的 dwFlags 參數會描述有效的旗標。
nGlowSize
[in]繪製指定文字之前,在背景繪製的光暈效果大小。 預設值為 0。
clrText
[in]繪製指定文字的色彩。 預設值為預設色彩。
傳回值
如果使用主題來繪製指定的文字,則為TRUE;否則為 FALSE。
備註
佈景主題會定義應用程式的視覺化樣式。 如果 hTheme 參數為 NULL,或不支援 DrawThemeTextEx 方法,或已停用桌面視窗管理員 (DWM) 組合,則主題不會用來繪製文字。
AFX_GLOBAL_DATA::EnableAccessibilitySupport
啟用或停用 Microsoft Active Accessibility 支援。
void EnableAccessibilitySupport(BOOL bEnable=TRUE);
參數
bEnable
[in]TRUE 可啟用輔助功能支援;FALSE 可停用輔助功能支援。 預設值為 TRUE。
備註
Active Accessibility 是一種 COM 技術,可改善程式與 Windows 作業系統一起與輔助技術產品合作的方式。 它提供用於公開使用者介面項目資訊的可靠方法。 然而,現在已有稱為 Microsoft UI 自動化之較新協助工具模型可供使用。 如需這兩種技術的比較,請參閱 使用者介面自動化 和 Microsoft Active Accessibility。
使用 AFX_GLOBAL_DATA::IsAccessibilitySupport 方法來判斷是否已啟用Microsoft Active Accessibility 支援。
AFX_GLOBAL_DATA::ExcludeTag
從指定的緩衝區中移除指定的 XML 標記組。
BOOL ExcludeTag(
CString& strBuffer,
LPCTSTR lpszTag,
CString& strTag,
BOOL bIsCharsList = FALSE);
參數
strBuffer
[in]文字的緩衝區。
lpszTag
[in]一對開頭和結尾 XML 標記的名稱。
strTag
[out]當此方法傳回時,strTag 參數會包含 lpszTag 參數所命名之開頭和結尾 XML 標記之間的文字。 任何前置或尾端空格符會從結果中修剪。
bIsCharsList
[in]TRUE 可將 strTag 參數中逸出字元的符號轉換成實際的逸出字元;FALSE 不執行轉換。預設值為 FALSE。 如需詳細資訊,請參閱<備註>。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。
備註
XML 標記組是由具名開頭和結尾標記所組成,指出指定緩衝區中文字執行的開始和結尾。 strBuffer 參數會指定緩衝區,而 lpszTag 參數會指定 XML 標記的名稱。
使用下表中的符號來編碼指定緩衝區中的一組逸出字元。 為 bIsCharsList 參數指定 TRUE,將 strTag 參數中的符號轉換成實際的逸出字元。 下表使用 _T() 巨集來指定符號和逸出字元字串。
符號 | 逸出字元 |
---|---|
_T(“\\t”) | _T(“\t”) |
_T(“\\n”) | _T(“\n”) |
_T(“\\r”) | _T(“\r”) |
_T(“\\b”) | _T(“\b”) |
_T(“LT”) | _T(“”<) |
_T(“GT”) | _T(“”>) |
_T(“AMP”) | _T(“&”) |
AFX_GLOBAL_DATA::GetColor
擷取指定的使用者介面項目目前的色彩。
COLORREF GetColor(int nColor);
參數
nColor
[in]值,指定擷取其色彩的使用者介面專案。 如需有效值的清單,請參閱 GetSysColor 方法的 nIndex 參數。
傳回值
指定之使用者介面項目的 RGB 色彩值。 如需詳細資訊,請參閱<備註>。
備註
如果 nColor 參數超出範圍,則傳回值為零。 由於零也是有效的 RGB 值,您無法使用這個方法來判斷目前的作業系統是否支援系統色彩。 請改用 GetSysColorBrush 方法,如果不支援色彩,則會傳回 NULL。
AFX_GLOBAL_DATA::GetDirect2dFactory
傳回儲存在全域數據的ID2D1Factory介面指標。 介面若未初始化,就會建立介面並設定預設參數。
ID2D1Factory* GetDirect2dFactory();
傳回值
如果建立處理站成功,則為ID2D1Factory介面的指標,如果建立失敗或目前的操作系統沒有 D2D 支援,則為 NULL。
AFX_GLOBAL_DATA::GetHandCursor
擷取與手部類似且標識碼為IDC_HAND的預先定義數據指標。
HCURSOR GetHandCursor();
傳回值
手狀游標的控制代碼。
AFX_GLOBAL_DATA::GetNonClientMetrics
擷取與非最小化視窗之非工作區相關聯的度量。
BOOL GetNonClientMetrics(NONCLIENTMETRICS& info);
參數
資訊
[in, out] NONCLIENTMETRICS 結構,其中包含與非最小化視窗之非工作區相關聯的可調整計量。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。
AFX_GLOBAL_DATA::GetTextHeight
擷取目前字型的文字字元高度。
int GetTextHeight(BOOL bHorz = TRUE);
參數
bHorz
[in]TRUE 表示在文字水平執行時擷取字元的高度;FALSE 表示在文字垂直執行時擷取字元的高度。 預設值為 TRUE。
傳回值
目前字型的高度,從其遞增到其下階來測量。
AFX_GLOBAL_DATA::GetWICFactory
傳回儲存在全域數據的 IWICImagingFactory 介面指標。 介面若未初始化,就會建立介面並設定預設參數。
IWICImagingFactory* GetWICFactory();
傳回值
如果建立處理站成功,則為IWICImagingFactory介面的指標,如果建立失敗或目前的操作系統沒有WIC支援,則為NULL。
AFX_GLOBAL_DATA::GetWriteFactory
傳回儲存在全域數據中的IDWriteFactory介面指標。 介面若未初始化,就會建立介面並設定預設參數。
IDWriteFactory* GetWriteFactory();
傳回值
如果建立處理站成功,則為IDWriteFactory介面的指標,如果建立失敗或目前的操作系統沒有 DirectWrite 支援,則為 NULL。
AFX_GLOBAL_DATA::Initd2D
初始化 D2D、DirectWrite 和 WIC Factory。 初始化主視窗之前先呼叫這個方法。
BOOL InitD2D(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
參數
d2dFactoryType
D2D 處理站的線程模型及其建立的資源。
writeFactoryType
值,指定寫入處理站物件是否會共享或隔離
傳回值
如果工廠是非高階,則傳回 TRUE - 否則傳回 FALSE
AFX_GLOBAL_DATA::Is32BitIcons
指出是否支援預先定義的 32 位元圖示。
BOOL Is32BitIcons() const;
傳回值
如果支援預先定義的 32 位圖示,則為 TRUE;否則為 FALSE。
備註
如果架構支援 32 位內建圖示,而且操作系統支援每圖元 16 位或更多,而且影像不會以高對比度顯示,則這個方法會傳回 TRUE。
AFX_GLOBAL_DATA::IsAccessibilitySupport
指出是否已啟用 Microsoft Active Accessibility 支援。
BOOL IsAccessibilitySupport() const;
傳回值
如果已啟用輔助功能支援,則為TRUE;否則為 FALSE。
備註
Microsoft Active Accessibility 是過去用來讓應用程式成為可存取的方法。 Microsoft UI 自動化是 Microsoft Windows 的一種新的協助工具模型,能滿足輔助科技產品及自動化測試工具的需求。
使用 AFX_GLOBAL_DATA::EnableAccessibilitySupport 方法來啟用或停用 Active Accessibility 支援。
AFX_GLOBAL_DATA::IsD2DInitialized
判斷是否已初始化 D2D
BOOL IsD2DInitialized() const;
傳回值
如果 D2D 已初始化,則為 TRUE;否則為 FALSE。
AFX_GLOBAL_DATA::IsDwmCompositionEnabled
提供呼叫 Windows DwmIsCompositionEnabled 方法的簡單方式。
BOOL IsDwmCompositionEnabled();
傳回值
如果 已啟用桌面視窗管理員 (DWM) 組合,則為TRUE;否則為 FALSE。
AFX_GLOBAL_DATA::IsHighContrastMode
指出目前是否以高對比顯示圖像。
BOOL IsHighContrastMode() const;
傳回值
如果影像目前以黑色或白色高對比度模式顯示,則為TRUE;否則為 FALSE。
備註
在黑色高對比度模式中,面向光線的邊緣為白色,背景為黑色。 在白色高對比度模式中,面向光線的邊緣為黑色,背景為白色。
AFX_GLOBAL_DATA::IsWindowsLayerSupportAvailable
指出作業系統是否支援層疊的視窗。
BOOL IsWindowsLayerSupportAvailable() const;
傳回值
如果支援分層視窗,則為TRUE;否則為 FALSE。
備註
如果支援分層視窗, 智慧停駐 標記會使用分層視窗。
AFX_GLOBAL_DATA::m_bUseBuiltIn32BitIcons
指出架構使用預先定義的 32 位元色彩圖示或較低解析度的圖示。
BOOL m_bUseBuiltIn32BitIcons;
備註
TRUE 指定架構使用 32 位色彩圖示;FALSE 指定較低的解析度圖示。 建構函式會將 AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
這個成員初始化為TRUE。
這個成員必須在應用程式啟動時設定。
AFX_GLOBAL_DATA::m_bUseSystemFont
指出功能表、工具列和功能區是否使用系統字型。
BOOL m_bUseSystemFont;
備註
TRUE 指定使用系統字型;否則為 FALSE。 建構函式會將 AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
這個成員初始化為 FALSE。
測試此成員並不是架構判斷要使用的字型的唯一方式。 方法 AFX_GLOBAL_DATA::UpdateFonts
也會測試預設和替代字型,以判斷哪些視覺樣式可用於套用至功能表、工具列和功能區。
AFX_GLOBAL_DATA::m_hcurHand
儲存手型游標的控制代碼。
HCURSOR m_hcurHand;
AFX_GLOBAL_DATA::m_hcurStretch
儲存水平延展游標的控制代碼。
HCURSOR m_hcurStretch;
AFX_GLOBAL_DATA::m_hcurStretchVert
儲存垂直延展游標的控制代碼。
HCURSOR m_hcurStretchVert;
AFX_GLOBAL_DATA::m_hiconTool
儲存工具圖示的控制代碼。
HICON m_hiconTool;
AFX_GLOBAL_DATA::m_nAutoHideToolBarMargin
指定從最左邊的自動隱藏工具列到停駐列左邊的位移。
int m_nAutoHideToolBarMargin;
備註
AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
建構函式會初始化這個成員為 4 個像素。
AFX_GLOBAL_DATA::m_nAutoHideToolBarSpacing
指定自動隱藏工具列之間的間距。
int m_nAutoHideToolBarSpacing;
備註
建構函式會將 AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
這個成員初始化為 14 圖元。
AFX_GLOBAL_DATA::m_nDragFrameThicknessDock
指定用來表示停駐狀態的拖曳框架粗細。
int m_nDragFrameThicknessDock;
備註
建構函式會將 AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
這個成員初始化為 3 圖元。
AFX_GLOBAL_DATA::m_nDragFrameThicknessFloat
指定用來表示浮動狀態的拖曳框架粗細。
int m_nDragFrameThicknessFloat;
備註
AFX_GLOBAL_DATA::AFX_GLOBAL_DATA
建構函式會初始化這個成員為 4 個像素。
AFX_GLOBAL_DATA::OnSettingChange
偵測到桌面功能表動畫和工作列自動隱藏功能的目前狀態。
void OnSettingChange();
備註
此方法會將架構變數設定為使用者桌面特定屬性的狀態。 此方法會偵測功能表動畫、功能表淡出和任務列自動隱藏功能的目前狀態。
AFX_GLOBAL_DATA::RegisterWindowClass
註冊指定的 MFC 視窗類別。
CString RegisterWindowClass(LPCTSTR lpszClassNamePrefix);
參數
lpszClassNamePrefix
[in]要註冊的視窗類別名稱。
傳回值
如果此方法成功,則為已註冊類別的限定名稱;否則為 資源例外狀況。
備註
傳回值是 lpszClassNamePrefix 參數位符串的冒號分隔清單,以及目前應用程式實例句柄的十六進位文字表示;應用程式數據指標,也就是標識符為IDC_ARROW的箭號游標;以及背景筆刷。 如需註冊 MFC 視窗類別的詳細資訊,請參閱 AfxRegisterClass。
AFX_GLOBAL_DATA::Resume
重新初始化內部函式指標,存取支援 Windows Themes and Visual Styles(佈景主題和視覺化樣式) 的方法。
BOOL Resume();
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。 在偵錯模式中,如果此方法失敗,這個方法會判斷提示。
備註
當架構收到 WM_POWERBROADCAST 訊息時,會呼叫這個方法。
AFX_GLOBAL_DATA::SetLayeredAttrib
提供呼叫 Windows SetLayeredWindowAttributes 方法的簡單方法。
BOOL SetLayeredAttrib(
HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
參數
hwnd
[in]分層視窗的句柄。
crKey
[in]桌面視窗管理員用來撰寫分層視窗的透明度色彩索引鍵。
bAlpha
[in]用來描述分層視窗不透明度的 Alpha 值。
dwFlags
[in]旗標的位元組合(OR),指定要使用的方法參數。 指定LWA_COLORKEY使用 crKey 參數做為透明度色彩。 指定 LWA_ALPHA,以使用 bAlpha 參數來判斷分層視窗的不透明度。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。
AFX_GLOBAL_DATA::SetMenuFont
建立指定的邏輯字型。
BOOL SetMenuFont(
LPLOGFONT lpLogFont,
BOOL bHorz);
參數
lpLogFont
[in]包含字型屬性之結構的指標。
bHorz
[in]TRUE 可指定文字水平執行;FALSE 指定文字垂直執行。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。 在偵錯模式中,如果此方法失敗,這個方法會判斷提示。
備註
此方法會建立水準一般字型、加底線字型,以及預設功能表項中使用的粗體字型。 此方法選擇性地建立一般垂直字型。 如需邏輯字型的詳細資訊,請參閱 CFont::CreateFontIndirect。
AFX_GLOBAL_DATA::UpdateFonts
重新初始化架構使用的邏輯字型。
void UpdateFonts();
備註
如需邏輯字型的詳細資訊,請參閱 CFont::CreateFontIndirect
。
AFX_GLOBAL_DATA::UpdateSysColors
初始化架構使用的色彩、色彩深度、筆刷、畫筆與圖像。
void UpdateSysColors();
AFX_GLOBAL_DATA::bIsWindows7
表示應用程式是否在 Windows 7 或以上版本執行。
BOOL bIsWindows7;
AFX_GLOBAL_DATA::clrActiveCaptionGradient
指定現用標題的漸層色彩。 通常用於停駐窗格。
COLORREF clrActiveCaptionGradient;
AFX_GLOBAL_DATA::clrInactiveCaptionGradient
指定非使用中標號的漸層色彩。 通常用於停駐窗格。
COLORREF clrInactiveCaptionGradient;
AFX_GLOBAL_DATA::GetITaskbarList
在全域資料中建立和儲存指標至 ITaskBarList
介面。
ITaskbarList *GetITaskbarList();
傳回值
建立任務欄清單物件成功時,介面的 ITaskbarList
指標;如果建立失敗,或目前的操作系統小於 Windows 7,則為 NULL。
AFX_GLOBAL_DATA::GetITaskbarList3
在全域資料中建立和儲存指標至 ITaskBarList3
介面。
ITaskbarList3 *GetITaskbarList3();
傳回值
建立任務欄清單物件成功時,介面的 ITaskbarList3
指標;如果建立失敗,或目前的操作系統小於 Windows 7,則為 NULL。
AFX_GLOBAL_DATA::GetShellAutohideBars
決定殼層自動隱藏軸的位置。
int GetShellAutohideBars();
傳回值
具有編碼旗標的整數值,指定自動隱藏線的位置。 它可以結合下列值:AFX_AUTOHIDE_BOTTOM、AFX_AUTOHIDE_TOP、AFX_AUTOHIDE_LEFT、AFX_AUTOHIDE_RIGHT。
AFX_GLOBAL_DATA::ReleaseTaskBarRefs
釋放透過 GetITaskbarList
和 GetITaskbarList3
方法取得的介面。
void ReleaseTaskBarRefs();
AFX_GLOBAL_DATA::ShellCreateItemFromParsingName
從剖析名稱建立並初始化殼層項目物件。
HRESULT ShellCreateItemFromParsingName(
PCWSTR pszPath,
IBindCtx *pbc,
REFIID riid,
void **ppv);
參數
pszPath
[in]顯示名稱的指標。
中國人民銀行
控制剖析作業之系結內容的指標。
riid
介面識別碼的參考。
ppv
[out]當此函式傳回時,包含riid中要求的介面指標。 這通常是 IShellItem
或 IShellItem2
。
傳回值
如果成功,則傳回S_OK;否則為錯誤值。
另請參閱
階層架構圖表
結構、樣式、回呼和訊息對應
COLORREF
元件和狀態
CDC::D rawText
DrawThemeTextEx
桌面視窗管理員
啟用和控制 DWM 組合
UI 自動化和 Microsoft Active Accessibility
GetSysColor 函式
GetSysColorBrush
NONCLIENTMETRICS 結構
AfxRegisterClass
AfxThrowResourceException
SetLayeredWindowAttributes