Con respecto al problema del uso de funciones GDI para dibujar elipses y rectángulos en VC, ¡ayuda!
La parte relevante ha sido cambiada
case WM_MOUSEMOVE:
hdc=GetDC(hWnd) ;
SelectObject(hdc, GetStockObject(NULL_ BRUSH));
SetROP2(hdc,R2_NOT);
if(bDraw==TRUE)
{
if(drawcontrol==1)//rect
{
//SetROP2(hdc,R2_ XORPEN);
MoveToEx(hdc,x1,y1,NULL);
Rectángulo(hdc,x1,y1,x2,y2);
x2=LOWORD(lParam);
y2=HIWORD(lParam);
MoveToEx(hdc,x1,y1,NULL);
Rectángulo(hdc,x1,y1,x2,y2) ;
SetROP2(hdc,R2_NOT);
}
else if(drawcontrol==2)// elipse
{
//SetROP2(hdc,R2_XORPEN);
MoveToEx(hdc,x1,y1,NULL);
Elipse(hdc,x1,y1,x2, y2) ;
x2=LOWORD(lParam);
y2=HIWORD(lParam);
MoveToEx(hdc,x1,y1,NULL);
Elipse(hdc,x1,y1,x2,y2);
}
else if(drawcontrol ==3)//freeline
{
MoveToEx(hdc,x1,y1,NULL);
x1=LOWORD(lParam);
y1=HIWORD(lParam);
LineTo(hdc,x1,y1);
ReleaseDC.
ReleaseDC(hWnd,hdc);
}
else if(drawcontrol==4)//línea
{
MoveToEx(hdc,x1,y1,NULL);
LineTo(hdc ,x2 ,y2);
x2=LOWORD(lParam);
y2=HIWORD(lParam);
MoveToEx(hdc,x1,y1,NULL
LineTo(hdc,x2,y2);
}
// "si ..." termina aquí
}
ReleaseDC(hWnd,hdc);
Devuelve 0;