win32 之上的面向对象的库,不需要控制主事件循环

Object oriented library on top of win32 that do not require control of main event loop

本文关键字:控制 不需要 事件 循环 面向对象的 win32      更新时间:2023-10-16

我正在Windows上的C++中为第三方程序实现一个插件。

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

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

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?

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

我想

你可能对Qt的qtwinmigrate solution感兴趣。这使您可以将旧的win32代码与Qt代码混合使用。Qt是一个非常好的框架。