如何使用 OpenGL 画布在另一个程序内创建子窗口
How do I create a child window inside another program with an OpenGL canvas?
我正在第三方程序中开发一个C++插件,需要显示一个带有OpenGL的窗口。我想直接在 Win32 中编程(即不使用 MFC 或其他包装器)。
我下载了NeHes Win32教程,并在我的机器上成功编译并运行了它。
但是,这是一个主程序,它循环并调用PeekMessage,然后翻译消息和调度消息,如果没有任何消息,则重绘OpenGL。
我想"生成"一个Win32 OpenGL窗口,然后将控制权返回给第三方程序:
void DisplayOpenGLWindow_ButtonPressed() {
CreateWindowEx(...);
InitOpenGL(...);
return;
}
但是如何获得新窗口来重绘 OpenGL 场景呢?我尝试在回调函数中添加一个调用以重绘 OpenGL:
case WM_PAINT:
{
DrawGLScene();
return 0;
}
但这行不通;即使透明的颜色是黑色,窗户也是全白的。调整窗口大小和移动窗口无济于事。
答案会很大,所以我引导你去一些教程而不是:)
链接:
- OpenGL MFC AppWizard
- OpenGL Windows GUI Application - songho
Nehe主要使用Win32 api,因此请查找MFC教程/文章。
另一件事:尝试在现代 opengl 版本 3. 及更高版本上墨角。
相关文章:
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 从头开始为应用程序创建 docker 映像是否有意义?
- 如何查看在程序级别为我的程序创建了多少 vtable 和 vpointer
- 如何在运行时对程序创建的.sys文件设置文件版本
- 从函数应用程序创建 std::vector
- 将 Qml/C++ 应用程序创建为插件
- 如何为带有计时功能的程序创建计时器?
- 使用Visual C ,卡在程序创建分配中
- 从Ubuntu中的CPP程序创建新文件
- 通过编译应用程序创建Windows服务
- 我们可以使用mfc应用程序创建pdf文件吗
- 使用可执行应用程序创建和"Scheduling" pthreads
- 通过 JNI 从应用程序创建 JVM 后C++找不到类
- 如何为多线程应用程序创建全局对象
- 为C++ Linux 应用程序创建隐藏的配置文件
- C 程序创建SIN COS和切线值
- MongoDB使用C 驱动程序创建稀疏索引
- 如何以编程方式为应用程序创建文件夹,以使用 BOX REST API 在其中上传内容
- 有没有办法从 C 程序创建数据收集器集
- 从C++应用程序创建Mac OS X的安装程序