SetROP2(hdc, R2_XORPEN);
SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
me.x = LOWORD(lParam);
me.y = HIWORD(lParam);
Ellipse(hdc, old.x-50, old.y-50, old.x+50, old.y+50);
Ellipse(hdc, me.x-50, me.y-50, me.x+50, me.y+50);
old.x = me.x;
old.y = me.y;
예제에 이런식으로 나와있는데 따라하면 안되요
래스터연산 정말 좆같네요
어떻게든 할순 있는데 제가 한거는 그림판처럼 깔끔하게 안되고 드래그할때 움직이는방향쪽이 지워지고 멈추면 제대로 그려진다던가
속이 검정색흰색으로 깜빡거린다던가 그래서요 그림판처럼 완벽하게 어케할지 도저히 모르게서요..
속깜빡거리는거
SetROP2(hdc, R2_XORPEN);
SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
Ellipse(hdc, start.x, start.y, oldend.x, oldend.y);
Ellipse(hdc, start.x, start.y, end.x, end.y);
SelectObject(hdc, (HPEN)GetStockObject(BLACK_PEN));
Ellipse(hdc, start.x, start.y, oldend.x, oldend.y);
Ellipse(hdc, start.x, start.y, end.x, end.y);
oldend.x = end.x;
oldend.y = end.y;
드래그시 진행방향쪽이 지워지는거 (멈추면 제대로그려짐)
SetROP2(hdc, R2_WHITE);
SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
Ellipse(hdc, old.x-50, old.y-50, old.x+50, old.y+50);
ReleaseDC(hwnd, hdc);
hdc = GetDC(hwnd);
me.x = LOWORD(lParam);
me.y = HIWORD(lParam);
Ellipse(hdc, me.x-50, me.y-50, me.x+50, me.y+50);
old.x = me.x;
old.y = me.y;
더블버퍼링
참 우습게 보이지만 졸라 어려운 프로그램이지..
간단하게 할려면 case mousemove였나에 계속 validate였나 넣으면서 해봐 ㅋㅋㅋ
페인트메시지 상관없이 하고 싶어요
밑에거는 안되네요 애초에 만들때 원 드래그로 이동할때만든거라 그려지는부분이 동그랗게 다지워져버려서..