vli*_*ind 5 c++ windows-runtime c++-winrt
在 Win32 API 中注册窗口类、创建窗口然后通过消息泵循环保持活动状态的 C++ WinRT 等价物是什么?
我目前正在查看和阅读 WinRT 的文档,因为我想学习如何以现代 C++ 方式完成我过去在 Win32 中所做的所有事情。
到目前为止,我的经历很糟糕,我要直截了当地承认我没有得到它。
我试过了,但由于我没有在容器中运行,似乎尚未创建线程的 CoreWindow。
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
{
winrt::init_apartment(winrt::apartment_type::single_threaded);
winrt::Windows::UI::Core::CoreWindow window = winrt::Windows::UI::Core::CoreWindow::GetForCurrentThread();
window.Activate();
auto dispatcher = window.Dispatcher();
using DispatcherOptions = winrt::Windows::UI::Core::CoreProcessEventsOption;
const DispatcherOptions options = DispatcherOptions::ProcessUntilQuit;
dispatcher.ProcessEvents(options);
}
Run Code Online (Sandbox Code Playgroud)
C++/WinRT 是使用 Windows 运行时(又名 WinRT)API 的现代 C++方式。这些 API 源自IInspectable,而后者本身又源自IUnknown。除了 COM 对象之外winrt::com_ptr,它并没有真正为经典的 Win32 API 提供太多功能。
您当然可以使用 C++/WinRT 从 Win32 经典应用程序使用 Windows 运行时 API,但 Win32 经典程序不存在“CoreWindow”之类的东西。所有这些都Windows::UI::CoreWindow与通用 Windows 平台 (UWP) 应用程序相关。
请参阅微软文档
| 归档时间: |
|
| 查看次数: |
2935 次 |
| 最近记录: |