XP,MFC对话框程序,GetDC后TextOut输出被遮盖后消失的问题。

parachutes30 2014-01-08 10:58:23
void CdiaDlg::OnPaint()
{
if (IsIconic())
{
.....
}
else
{
CDC *pDC=GetDC();
pDC->TextOut(0,0,_T("haah"));
ReleaseDC(pDC);
CDialog::OnPaint();
}
}

运行后,打开任意一个全屏的程序A,遮住这个对话框,然后把程序A最小化,对话框露出来,但haah就没了。
Vista系统下没有这个问题。
把else里面的改为下面的也没有这个问题了:
CPaintDC dc(this);;
dc.TextOut(0,0,_T("haah"));
CDialog::OnPaint();

问题在哪?
...全文
165 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyf87 2014-01-09
  • 打赏
  • 举报
回复
我总结了一篇笔记,楼主可以看一下:http://blog.csdn.net/zhuyf87/article/details/18000461 也许会有点帮助。
zhuyf87 2014-01-09
  • 打赏
  • 举报
回复
用GetDC()的时候,输出的内容可能被WM_ERASEBKGND擦除了吧。 处理WM_ERASEBKGND消息,注释掉默认处理,直接返回TRUE。试试。 另外OnPaint里面最好使用BeginPaint/EndPaint,这里面还有一个“无效区域”的问题。 GetDC不会使“无效区域”变有效,如果注释掉CDialog::OnPaint();,输出的文本还可能闪烁。
内容概要:本文档聚焦于通信系统中的调制解调技术与Turbo码的结合应用,系统研究了GMSK调制的二比特差分解调方法,以及Turbo码分别与BPSK、GMSK调制方式联合使用的系统性能。通过Matlab平台实现了完整的通信链路仿真,涵盖信号调制、信道编码、解调解码及误码率分析等关键环节,深入探讨了不同调制体制下Turbo编码系统的抗干扰能力与频谱效率表现。研究不仅提供了算法实现代码,还包含了详细的性能对比分析,有助于理解现代数字通信中高效编码调制技术的设计原理与工程实现。此外,文档附带多个相关科研方向的仿真案例,展现出广泛的技术延展性与实际应用价值。; 适合人群:具备通信原理、数字信号处理等相关基础知识,熟悉Matlab编程环境,正在从事无线通信系统仿真、信道编码理论研究或相关领域科研工作的研究生、高校教师及工程技术研究人员。; 使用场景及目标:①深入掌握GMSK调制与Turbo码相结合的技术机制,理解其在提高通信可靠性与频谱利用率方面的优势;②熟练运用Matlab构建完整的数字通信仿真系统,完成从调制编码到解调译码的全流程建模与性能评估;③为无人机通信、卫星通信、移动通信等实际应用场景下的高可靠传输系统设计提供理论支持与算法参考。; 阅读建议:建议结合所提供的Matlab代码逐模块运行与调试,重点关注GMSK差分解调过程与Turbo译码的迭代收敛特性,同时可参考文档中列出的其他研究课题拓展仿真范围,提升综合科研与工程实践能力。

15,976

社区成员

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

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