【问题标题】:Making a simple message box using C++/WinRT使用 C++/WinRT 制作一个简单的消息框
【发布时间】:2021-07-11 02:24:34
【问题描述】:

我无法在 C++/WinRT 中创建一个简单的消息对话框。像“你点击了这个:按确定继续”这样简单的东西没什么特别的。在标准的 Windows API 中,您可以简单地编写 MessageBox() 并且新的弹出窗口将显示您可以单击确定的位置,您可以在 C++/CX 中执行类似的操作 auto messageDialog = ref new Windows::UI::Popups::MessageDialog("You clicked on the button!"); messageDialog->ShowAsync();

我尝试使用 IMessageDialogContentDialog 类但没有成功,似乎找不到一个例子来说明如何在不编写 Xaml 代码的情况下做到这一点,这对于我的特定项目来说似乎是不必要的像消息框这样简单的东西。也许我只是没有设置它们对吗?但是话又说回来,没有关于如何首先设置它的示例(在 C++ 中)。我错过了什么? 谢谢!

【问题讨论】:

  • 您要使用原始 C++ 还是 C++/WinRT?
  • @SimonMourier 有什么区别?我对 Windows 运行时的想法还是很陌生。
  • 您可以使用各种语言(C/C++/Rust/.NET 等)对 WinRT 进行编码,前提是您拥有适当的“绑定”,无论这对所讨论的语言意味着什么。对于 C++,最简单的是 C++/WinRT,它使用现代 C++ 使其更容易(基本上是微软推荐的 C++ 对抗 WinRT)。它实际上看起来与Windows::UI::Popups::MessageDialog 等完全一样,但没有像 C++/CX 那样的“异国情调”符号。不过你需要一个像样的 C++ 编译器。
  • 哦,我明白了,是的,我正在使用 C++/WinRT。
  • 并非所有 WinRT API 都是这种情况,但据我所知,您仍然需要一个 CoreWindow 才能让这个 MessageDialog API 工作。

标签: c++ windows-runtime


【解决方案1】:

我能够使用这个来形成一个简单的消息对话框:

winrt::hstring Title = L"Hello";
winrt::hstring Content = L"Some cool content!";
winrt::Windows::UI::Popups::MessageDialog dialog(Content, Title);
dialog.ShowAsync();

确保还包含<winrt/Windows.UI.Core.h>,以便您可以访问 UI 库。 结果如下:

【讨论】:

  • 对于以后的任何人,如果在winrt/Windows.UI.Core.h中找不到MessageDialog,请尝试标头:winrt/Windows.UI.Popups.h
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 2010-12-20
  • 2011-01-29
  • 1970-01-01
相关资源
最近更新 更多