在前一个帖子(Adding a user interface to an image viewer plugin)中,我对如何将GUI控件添加到firebreath插件有了一些很好的见解。 Taxilian指出,当我在Windows下使用窗口插件时,它应该是直截了当的。基本上就像开发任何其他Windows应用程序一样。
现在,确保我理解正确。我想从onWindowAttached事件提供的窗口句柄创建一个子窗口。要创建这样的子窗口,我需要使用:: RegisterClassEx(...)注册这样的windows类,以拥有自己的Window Procedure。那是对的吗?我的意思是如何获得对WM_COMMAND事件的访问权限?
一旦完成,我需要使用插件中的hwnd :: CreateWindowEx(...)我的子窗口。
这是正确的思维方式吗?
非常感谢, 基督教
答案 0 :(得分:1)
实际上创建一个子窗口是可选的;实际插件窗口的WM_COMMAND事件将封装在一个WindowsEvent中,您可以像获取AttachedEvent一样捕获它。所有Windows事件都以这种方式发送。
另一种选择是执行您描述的操作并使用WINPROC注册新类并创建子窗口。这样做的主要原因是你可能能够更容易地与wxWidgets之类的抽象交互,因为它不知道FireBreath从那里获取事件是什么。这两种方法都可以正常工作。