你的程序有好多的错误。呵呵。1、PAINTSTURCT结构没有初始化;
2、SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),RGB(255,0,0))的失败的判断不对。当它失败时返回的是-1。
3、还有如果画出来的也是红点,不是兰点。
你其实可以用下面这段代码的:
case WM_MOUSEMOVE:
{
if (wParam==MK_LBUTTON) 
{
  HDC                  hdc;   hdc = GetDC(hWnd);
   if(SetPixel(hdc,LOWORD(lparam),HIWORD(lparam),RGB(255,0,0)) == -1)
     MessageBox(hWnd,"Error",Can't draw it!",MB_OK);
}
}

解决方案 »

  1.   

    试试下面的代码.注:绘图时,尽可能用CDC,因为它的功能已经足够强大了.呵呵
    BOOL CMousemoveDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message == WM_MOUSEMOVE)
    {
            if(pMsg->wParam == MK_LBUTTON)
    {
    CDC* pdc;
    pdc = this->GetDC();
    pdc->SetPixel(LOWORD(pMsg->lParam),HIWORD(pMsg->lParam),RGB(255,0,0));
    this->ReleaseDC(pdc);
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    BeginPaint()为Windows处理WM_PAINT消息的专用函数,处理鼠标消息,你得用GetDC()来获得设备描述表句柄, 请再试试看.