WIn API Basic Paint程序

时间:2012-12-02 12:04:13

标签: winapi mousemove

只是想学习一点Win API。我试图制作一个基本的绘图应用程序,有点像MS Paint。

暂时我试图让一个功能工作,当你左键单击并在屏幕上拖动鼠标时,鼠标后面会画一条线。继承了我到目前为止所做的事情,但出于某种原因:

1)线条开始直接绘制而不是等待左键单击 2)线条不是很坚固。

case WM_MOUSEMOVE:
{


    if(MK_LBUTTON){
    hdc = GetDC(hwnd);
    hPen = CreatePen(PS_SOLID,5,RGB(0, 0, 255));
    SelectObject(hdc, hPen);

    int x = LOWORD(lParam);
    int y = HIWORD(lParam);

    MoveToEx(hdc,x,y,NULL);
    LineTo(hdc, LOWORD(lParam), HIWORD(lParam));
    ReleaseDC(hwnd,hdc);
    }
    else
        break;

}

}

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

WM_LBUTTONDOWN上,您必须在程序中将变量设置为true("是鼠标当前已关闭),在WM_MOUSEMOVE中,然后检查该变量并且仅画它是true。在WM_LBUTTONUP上,您可以将该变量设置为false。 (该变量应初始化为false)。