社区
非技术类
帖子详情
菜鸟mm 问一个简单画图的问题
daoqituan
2011-11-19 03:47:19
还是那个 类LOGO语言的海龟问题。
乌龟是一个三角形,轨迹是 直线。
乌龟 移动了,画面重绘 ,之前的乌龟的画像 就不存在了。在新的客户区地方显示海龟。
但之前的移动轨迹 直线线段 都要显示。
怎样处理 怎样 刷新客户区?
用的 win32, 非文档 视图模式。
难道要把之前的轨迹都保存然后在一起画线段?
...全文
99
7
打赏
收藏
菜鸟mm 问一个简单画图的问题
还是那个 类LOGO语言的海龟问题。 乌龟是一个三角形,轨迹是 直线。 乌龟 移动了,画面重绘 ,之前的乌龟的画像 就不存在了。在新的客户区地方显示海龟。 但之前的移动轨迹 直线线段 都要显示。 怎样处理 怎样 刷新客户区? 用的 win32, 非文档 视图模式。 难道要把之前的轨迹都保存然后在一起画线段?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sxcong
2011-12-02
打赏
举报
回复
最简单的做法,WndProc里,case WM_PAINT:先InvalidateRect 擦除所有画的东西,然后,再分别一个一个地Draw。直线,图都画的时候指定坐标。当然这样会闪烁,不过先解决了你的这个问题。
第二步,你申请个临时的DC,在上面画,然后再把这个DC复制到显示DC上,就是经常说的二级缓冲,这样就不闪烁了。
你先试着实现第一步。
下面是同时显示线和图示例:
#define TWOPI (2 * 3.14159)
POINT apt [1000] ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
MoveToEx (hdc, 0, cyClient / 2, NULL) ;
LineTo (hdc, cxClient, cyClient / 2) ;
for (i = 0 ; i < NUM ; i++)
{
apt[i].x = i * cxClient / NUM ;
apt[i].y = (int) (cyClient / 2 * (1 - sin (TWOPI * i / NUM))) ;
}
Polyline (hdc, apt, NUM) ;
if (hBitmap)
{
GetObject (hBitmap, sizeof (BITMAP), &bitmap) ;
hdcMem = CreateCompatibleDC (hdc) ;
SelectObject (hdcMem, hBitmap) ;
BitBlt (hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight,
hdcMem, 0, 0, SRCCOPY) ;
DeleteDC (hdcMem) ;
}
EndPaint (hwnd, &ps) ;
return 0 ;
}
见Charles Petzold一书
强烈建议先看看书再写代码。
Liekkas
2011-11-27
打赏
举报
回复
为什么要加mm?
helloangel8002
2011-11-27
打赏
举报
回复
应该需要重绘
faremn000
2011-11-20
打赏
举报
回复
是MM 吗
hacici
2011-11-19
打赏
举报
回复
yong directx 开发,贴图。
hurryboylqs
2011-11-19
打赏
举报
回复
windows程序设计 GDI部分看下
daoqituan
2011-11-19
打赏
举报
回复
大概要 用到 什么API?
AltiumDesigner
画图
不求人
微信公众号电子芯每天为大家推送学习教程、学习资料、设计案例,AltiumDesigner
画图
不求人,每天更新一课时,只需要不到3分钟的时间既可以完成学习,
《从
菜鸟
到大师之路 ElasticSearch 篇》
它是
一个
实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合:Wikipedia_使用 Elasticsearch 提供带有高亮片段的全文搜索,还有 ...
菜鸟
学习初级教程-----强烈推荐(看完后成黑客拉)
菜鸟
学习黑帽子初级教程-----强烈推荐(看完后成黑客拉)
一个
菜鸟
的图像处理入门
其实我们在c#中使用graphics的时候就已经在使用gdi+了我们却浑然不觉那么gdi到底在哪里呢 试着在c盘搜索gdiplus或者gdi32名字的文件 你应该会找到 就像这个直接删除应该删不掉 不过你可以给他改个名字 别...
Python-
菜鸟
练习100题
eg1:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? for i in range(1,5): for j in range(1,5): for k in range(1,5): if(i!=j) and (i!=k) and (j!=k): print(i,j,k) eg2:...
非技术类
1,649
社区成员
58,980
社区内容
发帖
与我相关
我的任务
非技术类
VC/MFC 非技术类
复制链接
扫一扫
分享
社区描述
VC/MFC 非技术类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章