![](/img/trans.png)
[英]How to create a direct3d texture of a web page rendered by MSHTML in C++?
[英]How do you programatically create a TextBox in a WinRT C++ Direct3D app?
我在VS2012中创建一个新的项目在Windows 8 的Visual C ++ | Windows Metro风格| Direct3D应用程序 。
默认情况下,这会使用主应用程序类Direct3DApp1
创建一个可工作的D3D应用程序,该类从Windows::ApplicationModel::Core::IFrameworkView
。
我需要以编程方式创建Windows::UI::Xaml::Controls::TextBox
并以某种方式将其插入此视图。 在定义XAML的其他项目类型中,这似乎很容易做到,但是此Direct3D App项目类型没有XAML。
如何在Direct3D图形上覆盖文本框,以允许用户弹出键盘并输入文本?
一个完全有效的VS2012解决方案,可以扩展Direct3D App
默认项目。 谢谢!
Marble Maze示例(以及其他DirectX示例,因为它在DirectXApp类中)对此进行了证明。
http://code.msdn.microsoft.com/windowsapps/DirectX-Marble-Maze-Game-e4806345
http://msdn.microsoft.com/zh-CN/library/windows/apps/br230257(v=vs.110).aspx
当然,这已经很晚了,但以防万一,在使用XAML控件之前,您需要首先初始化XAML应用程序:
(void)args; // Unused parameter
::Windows::UI::Xaml::Application::Start(ref new ::Windows::UI::Xaml::ApplicationInitializationCallback(
[](::Windows::UI::Xaml::ApplicationInitializationCallbackParams^ p) {
(void)p; // Unused parameter
auto app = ref new ::MyApp::App();
}));
并设置Windows :: UI :: Xaml :: Window :: Current-> Content
有关更多信息,请参见http://developernote.com/2015/12/initialization-of-uwp-c-xaml-application/ 。
我不确定Windows :: ApplicationModel :: Core :: IFrameworkView是否可以与这种初始化方案共存,因此您可能需要重构一下代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.