WTL 9.0的变化 - atlapp.h
2024-09-07 16:43:28
忽然发现WTL更新到9.0.4140了,便对比了一下 8.1.12085。
先看看atlapp.h中有什么大的变动。
第61行:
#if defined(_SYSINFOAPI_H_) && defined(NOT_BUILD_WINDOWS_DEPRECATE) && (_WIN32_WINNT >= 0x0501)
#include <VersionHelpers.h>
#endif
XP以及上的系统可以用 VersionHelpers.h中一些更方便的工具函数来判断windows版本了,例如:IsWindowsXPOrGreater()、IsWindowsXPSP3OrGreater()、IsWindows8OrGreater(),同时VC2013编译时也会警告GetVersionEx等API已经过时,所以WTL 9引入了这些新API,并改写之前WTL版本,如:
inline bool IsVista()
{
#ifdef _versionhelpers_H_INCLUDED_
return ::IsWindowsVistaOrGreater();
#else // !_versionhelpers_H_INCLUDED_
OSVERSIONINFO ovi = { sizeof(OSVERSIONINFO) };
BOOL bRet = ::GetVersionEx(&ovi);
return ((bRet != FALSE) && (ovi.dwMajorVersion >= 6));
#endif // _versionhelpers_H_INCLUDED_
}
inline bool IsWin7()
{
#ifdef _versionhelpers_H_INCLUDED_
return ::IsWindows7OrGreater();
#else // !_versionhelpers_H_INCLUDED_
OSVERSIONINFO ovi = { sizeof(OSVERSIONINFO) };
BOOL bRet = ::GetVersionEx(&ovi);
return ((bRet != FALSE) && (ovi.dwMajorVersion == 6) && (ovi.dwMinorVersion >= 1));
#endif // _versionhelpers_H_INCLUDED_
}
第1165行:
// GenericWndClass - generic window class usable for subclassing // Use in dialog templates to specify a placeholder to be subclassed
// Specify as a custom control with class name WTL_GenericWindow
// Call Rregister() before creating dialog (for example, in WinMain)
namespace GenericWndClass
{
inline LPCTSTR GetName()
{
return _T("WTL_GenericWindow");
} inline ATOM Register()
{
WNDCLASSEX wc = { sizeof(WNDCLASSEX) };
wc.lpfnWndProc = ::DefWindowProc;
wc.hInstance = ModuleHelper::GetModuleInstance();
wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = GetName();
ATOM atom = ::RegisterClassEx(&wc);
ATLASSERT(atom != 0);
return atom;
} inline BOOL Unregister() // only needed for DLLs or tmp use
{
return ::UnregisterClass(GetName(), ModuleHelper::GetModuleInstance());
}
}; // namespace GenericWndClass
这是三个新增的函数,看注释知道,是用于subclass之类的,还没看到具体该怎样用。注释里WTL作者居然写错字了,嘿嘿。
最新文章
- Linux初识二
- android用讯飞实现TTS语音合成 实现中文版
- Java魔法堂:类加载器入了个门
- 浅谈TabLayout(ViewPager+Tab联动)
- 常见概率组合题目总结quickstart
- 使用innerHTML生成的script节点不会发出请求与执行text属性
- 一.CSS工作原理
- Android开发之ListView-SimpleAdapter的使用
- [置顶] UNIX常用命令
- Words to Use Instead of ";Very";
- MySQL 8.0常见问题
- LINUX 查看当前系统的内存使用情况 free
- Linux中OBS在Wayland环境下黑屏只显示鼠标的应对措施
- MT【205】寻找对称中心
- pom.xml将jar包导入
- 【bzoj3132】 Sdoi2013—森林
- Java Dom对XML的解析和修改操作
- java服务端json结果集传值给前端的数据输出格式
- Eclipse的Java开发中jar导入后无法使用包内class的解决方案
- Android-自定义RadioButton