setwindowtext导致gdi泄露,如何处理

zhaoshansh 2012-04-10 03:43:31
在ontimer函数中使用了setwindowtext,在编辑框中输出文本,导致gdi增长飞快,不知道如何处理,改用什么样的方式将字符串输入才能避免gdi增长
部分代码如下
void CFirstPage_Alarm::OnTimer(UINT_PTR nIDEvent)
{
if(nIDEvent==402)
{
str_edit.Empty();//编辑框中要显示的字符串
for(int i=0;i<iEvironCount;i++)
{
CString str_edit1;
CString str[4];
//str[0]=str[1]=str[2]=str[3]=_T("—");
str[0].Format(" ------ ");
str[1].Format(" ------ ");
str[2].Format(" ------ ");
str[3].Format(" ------ ");
if(temp[i]) str[0]=_T(" 报警 ");
if(tran[i]) str[1]=_T(" 报警 ");
if(vswr[i]) str[2]=_T(" 报警 ");
if(elect[i]) str[3]=_T(" 报警 ");
str_edit1.Format("%9d%s%s%s%s\r\n",i+1,str[0],str[1],str[2],str[3]);
str_edit+=str_edit1;
}

m_edit_text.SetWindowText(str_edit);//m_edit_text为编辑框对象,就是这一句导致gdi增长
}

CDialog::OnTimer(nIDEvent);
}
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-05-07
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
zhaoshansh 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
CEdit::SetSel
CEdit::ReplaceSel
[/Quote]
不是很理解,能说明白点吗
ouyh12345 2012-04-10
  • 打赏
  • 举报
回复
CEdit::SetSel
CEdit::ReplaceSel

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧