0

我正在为第 3 方程序在 Windows 上实现 C++ 插件。

只要第 3 方程序正在运行,我就需要我的插件来显示 GUI 窗口。

我直接开始用win32编程。这工作正常,我能够创建一个新窗口并注册一个回调函数,即使我将控制权返回给第 3 方程序,它也会接收窗口内的所有窗口事件:

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) {
    ...
}

void createWindow() {
    WNDCLASS wndclass;
    wndclass.lpfnWndProc = WndProc;
    ...
    RegisterClass(&wndclass);
    HWND hwnd = CreateWindow(...);
    ShowWindow(hwnd, ...);
}

这种方法的问题是win32是低级的,不是面向对象的。 你能推荐一个轻量级和高质量的 GUI 库吗?

早些时候我使用了很多 Qt,它很棒,但据我所知,如果不控制主事件循环就不可能使用 Qt?

4

2 回答 2

2

WTL,Windows 模板库, http: //sourceforge.net/projects/wtl/是 Windows API 的轻量级包装器。你仍然需要知道 API 才能使用它,但它是 OO。它使用比 MFC 更现代的 C++ 方法。

于 2013-09-25T18:43:49.327 回答
1

我认为您可能对 Qt的qtwinmigrate解决方案感兴趣。这使您可以将旧版 win32 代码与 Qt 代码混合使用。Qt 是一个非常好的框架。

于 2013-09-26T01:01:13.323 回答