win32 之上的面向对象的库,不需要控制主事件循环
Object oriented library on top of win32 that do not require control of main event loop
我正在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是一个非常好的框架。
相关文章:
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 为什么output_editor Concept不需要output_e迭代器标记
- 在除法中不需要四舍五入
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 将值从另一个数组写入数组,不包括不需要的值 C++
- C++ 写入路径名中包含不需要的空字符的文件
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 使用 assimp 加载模型 - 不需要提升?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 返回不需要的值的二叉搜索程序
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- C++:用户输入会产生不需要的行为
- Arduino Nano:A4988 使用串行输入时通过定时器进行步进控制不稳定
- 如何在不需要LIBCD.lib的情况下在Visual Studio 6中编译C项目
- 为什么python需要全局关键字而C/C++不需要?
- 将一个宏传递到另一个宏而不是直接传递内容时会出现不需要的额外"空"参数
- 为什么我们需要在 C++ 中检查空指针,而在 Java 中不需要?
- 为什么复制构造函数不需要检查输入对象是否指向自身?
- win32 之上的面向对象的库,不需要控制主事件循环