关于画图的问题(想连续画很多图行,,就像windows自带的那种画图软件一样)

hugui12345678910 2010-04-16 05:05:18
大家帮忙,看一下我的这个问题:譬如我连续画很多椭圆,我是用的下面的方法 :
RECT rc;
static int x1,x2,y1,y2;
.........
case WM_LBUTTONDOWN:
x1=LOWORD(lParam);
y1=HIWORD(lParam);
break;
case WM_MOUSEMOVE:
if((wParam&MK_LBUTTON)&&(wParam&MK_SHIFT))
{
x2=LOWORD(lParam);
y2=HIWORD(lParam);
rc.left=x1;
rc.right=x2;
rc.top=y1;
rc.bottom=y2;
InvalidateRect(hwnd,&rc,1);
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Ellipse(hdc,x1,y1,x2,y2);
EndPaint(hwnd,&ps);
break;
但是这样使得不能达到那种像windows 的那种画图软件画椭圆的效果, 这个程序画图时总是把那个举行区域都刷新了,会遮盖其他的椭圆,如果不刷新的话,左上角又会出现椭圆移动的阴影。 求一能像windows 的那种画图软件画椭圆的程序,谢谢啦。。。
...全文
69 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2010-04-18
  • 打赏
  • 举报
回复
帮顶。
勇敢的搬砖人 2010-04-18
  • 打赏
  • 举报
回复
友情帮顶
hugui12345678910 2010-04-16
  • 打赏
  • 举报
回复
恩?怎么做双缓冲区将其保存?我是新手,麻烦你详细说明一下,或者把程序简单的写一下。麻烦了,,谢谢了
ypb362148418 2010-04-16
  • 打赏
  • 举报
回复
你可以做一个双缓冲区将原来的画面保存啊,然后重新弄上去,或者画完再刷新啊
soswaidao 2010-04-16
  • 打赏
  • 举报
回复
友情帮顶

64,379

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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