回 帖 发 新 帖 刷新版面

主题:关于画图的问题(想连续画很多图行,,就像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]

回复列表 (共3个回复)

沙发

InvalidateRect(hwnd,&rc,1);-->改成InvalidateRect(hwnd,&rc,0);

板凳


那样还是不行啊,又有另一个缺陷, 就是画椭圆的时候,左上角有椭圆移动的黑轨迹在。。。你可以试一下耶,你再想想。。麻烦了。。呵呵

3 楼

先看下。。。。。。。。。。。

















[url=http://www.sc115.com/vector]矢量素材[/url],[url=http://www.sc115.com/PPT]PPT模板[/url],[url=http://www.sc115.com]素材中国[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册