圖紙問題與啓動,這是我想要實現但與白色區域的圓角,而不是在這樣 子窗口在Win32
爲了實現這一目標完全成功所需的外觀,我已經確定要被製成白色矩形的屏幕座標和創建的靜態文本窗口和使用該設定圓形區域:
case WM_CREATE:
SetRect(&Rect,...);
hSubWnd = CreateWindow("STATIC",NULL,SS_LEFT|WS_CHILD|WS_VISIBLE,Rect.left,Rect.top,(Rect.right-Rect.left),(Rect.bottom-Rect.top),hFrame,(HMENU)NULL,NULL,NULL);
hrgn = CreateRoundRectRgn(Rect.left, Rect.top, Rect.right, Rect.bottom,15,15);
SetWindowRgn(hSubWnd,hrgn,TRUE);
然後到着色區域SETT上述我使用了以下內容:
case WM_CTLCOLORSTATIC:
//SetBkColor((HDC)wParam, RGB(0,0,0));
if((HWND)lParam == hSubWnd)
{
SetBkMode((HDC)wParam,TRANSPARENT);
return (INT_PTR)CreateSolidBrush(RGB(255,255,255));
}
break;
這使得該區域變成白色,但白色區域未按我的預期舍入。 這裏是我的問題:
1-如何使SetWindowRgn()工作的子控件?我的方法是否正確或我需要採取其他方式來實現我的目標(四捨五入小孩的角落)?
2-父窗口啓用了WS_CLIPCHILDREN樣式,這意味着無論我在主窗口的WM_PAINT中做什麼都不會繪製子窗口區域。我還需要將一些文本放入子窗口的白色區域。我在哪裏做? TextOut()在WM_CTLCOLORSTATIC處理程序中似乎不起作用。
我應該將孩子的窗口類從「STATIC」更改爲一些自定義類,併爲孩子編寫WindowProc(),其中我處理WM_PAINT以在其上繪製文本?
請提供您的建議。
是變量'hrgn'全球?對'SetWindowRgn()'的調用返回一個非零值嗎? –