어떻게 커스텀 보더를 그리는 지, 실제로 저는 1 픽셀 경계를 그리려하고 있지만 실패했습니다, 어떻게 이것을 할 수 있습니까? 나는 this.but 시도했다 failed.i 잘 했어 때 창문을 가지고 있지 않습니다 .. 창문 내 창문에 내 경우에는 3 자녀 창이이 깜박 점점이 사건.win32에서 사용자 정의 테두리를 그리는 방법은 무엇입니까?
case WM_NCACTIVATE :
{
if(TRUE == wParam)
{
stateofWindow = true;
InvalidateRect(hwnd,NULL,true);
}
else if(FALSE == wParam)
{
stateofWindow = false;
InvalidateRect(hwnd,NULL,true);
}
}
break;
case WM_NCCALCSIZE :
{
if (true == wParam)
{
return 0;
}
}
break;
case WM_PAINT:
{
HDC hcd = NULL;
PAINTSTRUCT ps;
hcd = BeginPaint(hwnd,&ps);
HPEN hPen = CreatePen(PS_SOLID, 1, RGB(165,165,165));;
SelectObject(hcd, hPen);
RECT rcClientRect = {0};
GetClientRect(hwnd,&rcClientRect);
//GetWindowRect(hwnd,&rcClientRect);
if(FALSE == stateofWindow)
{
MoveToEx(hcd,rcClientRect.left,rcClientRect.top,NULL);
LineTo(hcd,rcClientRect.right-1,rcClientRect.top);
LineTo(hcd,rcClientRect.right-1,rcClientRect.bottom-1);
LineTo(hcd,rcClientRect.left,rcClientRect.bottom-1);
LineTo(hcd,rcClientRect.left,rcClientRect.top);
}
else
{
HPEN hPen1 = CreatePen(PS_SOLID, 1, RGB(255,0,0));;
SelectObject(hcd, hPen1);
MoveToEx(hcd,rcClientRect.left,rcClientRect.top,NULL);
LineTo(hcd,rcClientRect.right-1,rcClientRect.top);
LineTo(hcd,rcClientRect.right-1,rcClientRect.bottom-1);
LineTo(hcd,rcClientRect.left,rcClientRect.bottom-1);
LineTo(hcd,rcClientRect.left,rcClientRect.top);
}
EndPaint(hwnd,&ps);
}
break;
일반적으로 클라이언트가 아닌 그림을 그리는 것은 나쁜 생각입니다. (당신이 할 수있는 일은 * 할 수 있다는 것을 의미하지는 않습니다.) –
u 님의 답변에 감사드립니다. 나는 그것을 시도했지만 그것은 효과가 없었다. – sindhu