解决方案 »
- 一个list control中的抬头部分有多个小栏,如何根据某个小栏下面的最长字串来自动调节它本身的宽度?
- 怎样在程序中选择录音输入设备(比如麦克风),并且控制其音量?
- 求救L2001 错误!!!
- 【700分】-帮帮我,写一小段使用 IDiskQuotaControl 接口的代码?UP有分!
- vs2010 编写的ATL生成的dll文件不能被其他程序使用?
- 如何实现软件的升级?
- 后缀是HDB的文件用什么打开啊?好象是数据库文件。
- 如何判断一个字符串中是否包含一些特定得字符,比如包含"snow"之类得?
- VC6有关数据转换的基本问题
- 网页加载完成后没有DocumentComplete
- 初学COM,请问COM 里边大量使用的强制类型转化是c++中类型转换的哪一种?
- MFC VC++ 编程 共享本地网络 创建无线AP EnableSharing出错
{
CRect rectClient;
GetClientRect(&rectClient);
CPaintDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(&dc); CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc,rectClient.Width(),rectClient.Height());
memDC.SelectObject(&bmp);
CPen penrgb(PS_SOLID,1,RGB(0,255,0));
memDC.SelectObject(&penrgb);
memDC.MoveTo(rectClient.Width()/2,rectClient.Height()/2);
memDC.LineTo(int(rectClient.Width()/2+500*sin(Num*PI/300)),int(rectClient.Width()/2-500*cos(Num*PI/300)));
// m_ClockHand.DrawHand(&memDC,m_nSecond,SECOND_HAND,m_ptMiddle,m_oTime); // 秒针
dc.StretchBlt(0,0,rectClient.Width(),rectClient.Height(),&memDC,0,0,rectClient.Width(),rectClient.Height(),SRCCOPY);
Num++;
if(Num==600)
{Num=0;}
}
线在 OnTimer 中画 (不要Invalidate()
另外注册窗口时别设定背景刷子(注释如下代码),背景色自己绘。
//wndcls.hbrBackground = (HBRUSH)backGrush.m_hObject;如果要求更好的效果可用D2D绘画,用户体验更好。
官方教程:http://msdn.microsoft.com/ZH-CN/library/gg482848.aspx
无解,GDI绘直线就这鸟样,总是有分叉。想减轻分叉(实际是锯齿),不要用GDI,用GDI+吧。GDI+画直线可以去掉锯齿,设置一下参数就好了,具体怎么设置参数自己查资料。
无解,GDI绘直线就这鸟样,总是有分叉。想减轻分叉(实际是锯齿),不要用GDI,用GDI+吧。GDI+画直线可以去掉锯齿,设置一下参数就好了,具体怎么设置参数自己查资料。我也用了GDI+试过GdipSetSmoothingMode,但是旋转是还是有抖动的感觉,就是感觉转得不流畅,累死卡顿的样子。
只是需要响应消息:WM_ERASEBKGND
BOOL CGoHomeDlg::OnEraseBkgnd(CDC* pDC)
{
return true;
}如果你不直接return true;
每次重绘他都会画一次背景
所以闪
在Timer里绘制雷达效果,这个思路不太合适。Timer再快也是有停顿的,并非绘图速度慢造成。可能你需要考虑在工作线程中绘制雷达了,消息类的解决办法针对你的要求不适用。
这是源代码
http://download.csdn.net/download/gz_qmc/7541693这是效果图,看动态效果还是下源代码吧