3

只是想学习一点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;

}

}

谢谢你的帮助!

4

1 回答 1

1

WM_LBUTTONDOWN您必须将程序中的变量设置为true(“是的,鼠标当前已关闭),WM_MOUSEMOVE然后在您的程序中检查该变量并仅将其绘制为true.WM_LBUTTONUP然后将该变量设置为false. (该变量应初始化为 false )。

于 2012-12-02T12:07:58.893 回答