Irrlicht嵌入QT widget中

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

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类下有个成员函数

winId();所以在QT中可以创建一个QWidget类然后用这个函数返回win32的窗体句柄,再进行以上操作就可以了;目前只发现这一种方式,winId函数介绍如下,可能会出现问题,所以如果有其他更好的方式希望各位指教,

WId QWidget::winId () const

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

原则上是可以移植的,但是如果使用了它,一定是做了一些不可移植的事情。请留心。

也可以参考find()。


转载于:https://my.oschina.net/nullptr/blog/215761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值