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 OS 还是更高版本下执行 |
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
要求
标头: afxglobals.h
AFX_GLOBAL_DATA::bIsOSAlphaBlendingSupport
指示操作系统是否支持 alpha 值混合处理。
BOOL bIsOSAlphaBlendingSupport;
备注
TRUE 指示支持 alpha 值混合处理;否则为 FALSE。
AFX_GLOBAL_DATA::CleanUp
释放由框架(如画笔、字体和 DLL)分配的资源。
void CleanUp();
AFX_GLOBAL_DATA::D2D1MakeRotateMatrix
创建以指定点为中心旋转指定角度的旋转转换。
HRESULT D2D1MakeRotateMatrix(
FLOAT angle,
D2D1_POINT_2F center,
D2D1_MATRIX_3X2_F *matrix);
参数
angle
顺时针旋转角度(以度为单位)。
center
要围绕其旋转的点。
矩阵
此方法返回时,包含新的旋转转换。 必须为此参数分配存储。
返回值
如果成功,则返回 S_OK,否则返回错误值。
AFX_GLOBAL_DATA::DrawParentBackground
在指定区域中绘制控件的父级的背景。
BOOL DrawParentBackground(
CWnd* pWnd,
CDC* pDC,
LPRECT lpRect = NULL);
参数
pWnd
[in] 指向控件的窗口的指针。
pDC
[in] 指向设备上下文的指针。
lpRect
[in] 指向用来限定要绘制的区域的矩形的指针。 默认值为 NULL。
返回值
如果此方法成功,则返回 TRUE;否则返回 FALSE。
AFX_GLOBAL_DATA::DrawTextOnGlass
使用指定主题的视觉样式绘制指定的文本。
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] 具有所需文本外观的控件部件。 有关详细信息,请参阅 部件和状态中表格的“部件”列。 如果此值为 0,则会使用默认字体或在设备上下文中选择的字体绘制文本。
iStateId
[in] 具有所需文本外观的控件状态。 有关详细信息,请参阅 部件和状态中表格的“状态”列。
strText
[in] 要绘制的文本。
rect
[in] 在其中绘制指定文本的区域的边界。
dwFlags
[in] 指定如何绘制指定文本的标志的按位组合 (OR)。
如果 hTheme 参数为 NULL
或如果不支持且不启用主题,CDC::DrawText 方法的 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,则启用 Accessibility 支持;如果为 FALSE,则禁用 Accessibility 支持。 默认值为 TRUE。
备注
Active Accessibility 是基于 COM 的技术,其使用辅助技术产品改进了程序和 Windows 操作系统一起工作的方式。 它提供了可靠的方式来公开与用户界面元素有关的信息。 但是,称为 Microsoft UI 自动化的更新辅助功能现已可用。 有关这两种技术的比较,请参阅 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);
参数
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 工厂。 在初始化主窗口之前调用此方法。
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;
返回值
如果启用了 Accessibility 支持,则为 TRUE;否则为 FALSE。
备注
Microsoft Active Accessibility 是使应用程序可访问的早期解决方案。 Microsoft UI Automation 是 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_hcurStretch
存储工具图标的句柄。
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 主题和视觉样式的方法的内部函数指针。
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
确定 Shell 自动隐藏栏的位置。
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
创建并初始化分析名称中的 Shell 项对象。
HRESULT ShellCreateItemFromParsingName(
PCWSTR pszPath,
IBindCtx *pbc,
REFIID riid,
void **ppv);
参数
pszPath
[in] 指向显示名称的指针。
pbc
指向控制分析操作的绑定上下文的指针。
riid
对接口 ID 的引用。
ppv
[out] 当此函数返回时,包含 riid 中请求的接口指针。 这通常为 IShellItem
或 IShellItem2
。
返回值
如果成功,则返回 S_OK;否则返回错误值。
另请参阅
层次结构图
结构、样式、回调和消息映射
COLORREF
部件和状态
CDC::DrawText
DrawThemeTextEx
桌面窗口管理器
启用和控制 DWM 组合
UI 自动化和 Microsoft Active Accessibility
GetSysColor 函数
GetSysColorBrush
NONCLIENTMETRICS 结构
AfxRegisterClass
AfxThrowResourceException
SetLayeredWindowAttributes