QWindowsBackingStore::flush: GetDC failed (句柄无效。)

今天使用VS2015开发Qt项目做绘制频谱功能,发现实时改变的文字(红圈中文字)会在一段时间后消失。
这里写图片描述

问题代码部分

代码块语法遵循标准markdown代码,例如:

void DLText::BuildFont()
{
    HFONT font = CreateFont(
        -m_iFontSize,/*高度*/
        m_iFontSize,/*宽度*/
        0,/*不用管*/
        0,/*不用管*/
        FW_NORMAL, /*一般这个值设为400*/
        FALSE,/*不带斜体*/
        FALSE,/*不带下划线*/
        FALSE,/*不带删除线*/
        DEFAULT_CHARSET, //这里我们使用默认字符集,还有其他以 _CHARSET 结尾的常量可用
        OUT_CHARACTER_PRECIS, 
        CLIP_CHARACTER_PRECIS, //这行参数不用管
        DEFAULT_QUALITY, //默认输出质量
        FF_DONTCARE, //不指定字体族*/
        m_strFontName.toStdWString().c_str()//字体名
    );
    SelectObject(m_HDC, font);                          //选择字体
    DeleteObject(font);
}
其中m_HDC是DC的句柄.
当红色范围内的文字消失后就会报错,并打印错误信息
QWindowsBackingStore::flush: GetDC failed (句柄无效。)
或者
QWindowsBackingStore::flush: GetDC failed ()
看看任务管理器打开GUI选项,GUI对象一直增加

这里写图片描述
解决办法就是最后两行改为
HFONT oldFont = (HFONT)SelectObject(m_HDC, font);
DeleteObject(font);
DeleteObject(oldFont);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值