【问题标题】:Adding Windows Form to a DirectX application?将 Windows 窗体添加到 DirectX 应用程序?
【发布时间】:2009-08-02 07:12:36
【问题描述】:

我正在开发一个 directx 应用程序,并且想知道如何向应用程序添加一个常规窗口,该窗口具有文本框、命令按钮和所有功能。

【问题讨论】:

    标签: windows directx


    【解决方案1】:

    要存在一个窗口,它需要一个 Windows 窗体消息泵:

    Win32 消息泵通常看起来像这样,并且是 win32 编程的核心。

    MSG msg;
    while(GetMessage(&msg, hwnd, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
        // do stuff
    }
    

    今天,C# 语言倾向于将消息泵抽象出来,但您仍然可以得到它。

        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
    
      // do stuff
    
        }
    

    您需要调用 application.run 来启动带有活动消息泵的 Windows 窗体。见:

    http://msdn.microsoft.com/en-us/library/ms157900.aspx

    嘿 Ed:这可能是您正在寻找的东西:

    http://www.directxtutorial.com/Tutorial9/A-Win32/dx9A3.aspx 。它谈到了从directx创建一个窗口

    【讨论】:

      【解决方案2】:

      据我所知,您必须创建一个父窗口来保存 DirectX 图像渲染到的“窗口”和带有控件的常规窗口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多