我用不同颜色的画刷填充静态文本控件的颜色,来显示串口的开关状态,但是窗口发生重绘尤其
是这个控件部分重绘时,里面的图形就没了,我在对话框的onpaint()里加入相应的代码,效果也
很差,不知道有什么好方法没?谢谢!!
是这个控件部分重绘时,里面的图形就没了,我在对话框的onpaint()里加入相应的代码,效果也
很差,不知道有什么好方法没?谢谢!!
解决方案 »
- 打开文件问题,怎么想也想不通。。。
- spy++捕获消息,sendmessage,鼠标移动
- 一个C++的经典问题!!!
- 求救!!!!!!!!!!!!!!!!!!!
- 问一个关于HTTP和80端口的初级问题 理论上的
- 2009年!写下你对CSDN前辈,兄弟姐妹们的祝福!
- dsp 和dsw 文件损坏 VC无法打开工程.请问怎么修复
- 请问:有谁知道启动StartIce之后,startsi.exe进程一直占用CPU 90%的问题如何解决?
- 50分:使窗口区域无效的那个函数 SetClip什么的怎么写了?我在CSDN里找不到
- 急:关于对话框处理问题
- vc菜鸟问题,程序错在哪里
- 关于fopen函数加"r,css=utf-8"参数读去utf-8文本的执行原理
===========
怎么差?你在里面怎么写的?
{
if(m_Com.GetPortOpen())
SwitchLight(RGB(0,255,0),IDC_ComLight);
else
SwitchLight(RGB(255,0,0),IDC_ComLight);
}
void CMyDlg::SwitchLight(COLORREF color,UINT ID)
{
//COLORREF color
CRect rc_tem;
CBrush bsh(color);
GetDlgItem(ID)->GetClientRect(&rc_tem);
CDC *pdc=GetDlgItem(ID)->GetDC();
pdc->SelectObject(&bsh);
pdc->Ellipse(&rc_tem);
GetDlgItem(ID)->ReleaseDC(pdc);
}其中CMyDlg为对话框,m_hCom为cmscomm控件,谢谢!
一般的控件颜色改变,是通过对"开关状态"参数的逻辑判断完成的,与窗口尺度变化所造成的重绘是不同的.你的程序在onpaint()里没有区分这些差别.