主题:关于画图的问题(想连续画很多图行,,就像windows自带的那种画图软件一样)
大家帮忙,看一下我的这个问题:譬如我连续画很多椭圆,我是用的下面的方法 :
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 的那种画图软件画椭圆的程序,谢谢啦。。。[em2]
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 的那种画图软件画椭圆的程序,谢谢啦。。。[em2]