[英]How do you create a classic win32 application window with 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);
}
C ++ / WinRT是使用Windows運行時(aka WinRT)API的“現代C ++”方式。 這些API是源自IInspectiable
本身派生自IUknown
。 除了用於COM對象的winrt::com_ptr
,它對於經典Win32 API確實沒有提供太多幫助。
當然,您可以使用C ++ / WinRT從Win32經典應用程序中使用Windows運行時API,但是對於Win32經典程序,沒有諸如“ CoreWindow”之類的東西。 所有Windows::UI::CoreWindow
與通用Windows平台(UWP)應用相關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.