如何在 VST 2.4 中创建子窗口?

Posted

技术标签:

【中文标题】如何在 VST 2.4 中创建子窗口?【英文标题】:How can I create a child window in VST 2.4? 【发布时间】:2015-02-11 20:43:37 【问题描述】:

我创建 ExampleEditor.h 和 ExampleEditor.cpp

ExampleEditor::ExampleEditor(AudioEffect *effect)
           
    effect->setEditor(this);
;

bool ExampleEditor::open(void *ptr)


    //This is it?

return true;
;

我写的VST插件文件构造函数

VstPlugin::VstPlugin(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 1, 1)

    editor = new ExampleEditor(this);

我需要在什么时候创建一个窗口?主窗口已经在 VST 中创建了吗? 我可以使用任何库或创建一个窗口吗? SDL2 ?谁能举个很简单的例子?

【问题讨论】:

【参考方案1】:

假设 Windows:在 open() 中,将 void* ptr 强制转换为 HWND。那是(主机提供的)父框架窗口的窗口句柄。当使用任何库时,在创建子插件窗口时将此句柄用作父句柄。您创建的子窗口必须设置 WS_CHILD 标志。

【讨论】:

以上是关于如何在 VST 2.4 中创建子窗口?的主要内容,如果未能解决你的问题,请参考以下文章

QT中想在子线程中创建对话窗口怎么建

MFC 主窗口如何在创建的子窗口前

VST 插件创建多个窗口

在自定义控件中创建子按钮窗口后崩溃

SetFocus 到父窗口,然后回到子窗口

VST2 接口 dll 入口点