Irrlicht嵌入QT widget中

Irrlicht中默认的和通常的opengl程序同样都是控制台+一个绘图窗口的,在Irrrlicht中有一个例子是把irrlicht程序嵌入win32绘图窗口下。具体代码以下:html

HWND hIrrlichtWindow =
    CreateWindow("BUTTON", "", WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, 
			50, 80, 320, 220, hWnd, NULL, hInstance, NULL);
irr::SIrrlichtCreationParameters param;
	param.WindowId = reinterpret_cast(hIrrlichtWindow); // hColorButton
	param.DriverType = video::EDT_OPENGL;

	irr::IrrlichtDevice* device = irr::createDeviceEx(param);

返回的device指针就是一个绘图设备了,其实思想很简单,就是建立一个窗体返回窗体句柄,这个句柄做为SIrrlichtCreationParameters的windowID便可;其实QT下面实现彻底能够用这个方法,在QWidget类下有个成员函数ide

winId();因此在QT中能够建立一个QWidget类而后用这个函数返回win32的窗体句柄,再进行以上操做就能够了;目前只发现这一种方式,winId函数介绍以下,可能会出现问题,因此若是有其余更好的方式但愿各位指教,函数

WId QWidget::winId () const

返回窗口部件的窗口系统标识符。spa

原则上是能够移植的,可是若是使用了它,必定是作了一些不可移植的事情。请留心。指针

也能够参考find()。code

相关文章
相关标签/搜索