stone2323 2014-06-17 12:26 采纳率: 0%
浏览 3174

因特殊限制,利用QWidget的函数getDC()返回的hdc绘图,只闪一次就被覆盖,

因条件限制:使用第三方动态库底层绘制地图图像,该库使用windows的GDI调用进行绘制,需要给该库提供一个hdc作为输出结果。
我在paintEvent函数中执行QWidget的getDc()函数可以返回该Widget的hdc,传递给动态库绘图后,界面只闪一下绘制图像就变成空白,请问如何让返回的hdc结果正确在QWidget上显示??
代码如下:
void myWidget::paintEvent(QPaintEvent * event)
{
HDC hdc = this->getDC();

thirdLibrary.outPut(hdc);//注解如下
/*该函数主要调用windows GDI将地图绘制在
传递进去的hdc中,并提供给我调用,可将该函数理解为
void output(HDC hdc)
{
    TextOut(hdc,0,0,"地图",2);
    ...等等类似windows GDI函数
}
*/
this->releaseDC();

}
库将地图绘制到hdc上之后,Qt显示的地图只有一下,一闪就没了,变成空白显示了,请问如何解决?

  • 写回答

1条回答

  • 普通网友 2014-06-17 14:55
    关注

    把你的TextOut函数放到WM_PAINT消息对应的消息处理逻辑下,估计你的程序经常收到WM_PAINT消息,并且在这个消息内也有绘制逻辑使窗口重绘了。

    评论

报告相同问题?

悬赏问题

  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器