裁剪区域
創(chuàng)建一個矩形裁剪區(qū)域:CreateRectRgn()
創(chuàng)建一個圓角矩形裁剪區(qū)域?
創(chuàng)建一個圓型或橢圓裁剪區(qū)域:CreateEllipticRgn()
合并兩個裁剪區(qū)域:CombineRgn()
設置當前窗口為一個裁剪區(qū)域的形狀:SetWindowRgn()
繪制指定裁剪區(qū)域的邊框:FrameRgn()
填充指定的裁剪區(qū)域:FillRgn()
?
以下為設置窗口為圓角矩形的代碼和效果:
void CMFCApplication11Dlg::SetWinRgnUser(int nWidthEllipse, int nHeightEllipse) {HRGN hRgn;RECT rect;GetWindowRect(&rect);hRgn = CreateRoundRectRgn(0, 0, rect.right - rect.left, rect.bottom - rect.top, nWidthEllipse, nHeightEllipse);SetWindowRgn(hRgn, TRUE); }?
以下為設置窗口為橢圓形的代碼和效果:
void CMFCApplication11Dlg::SetWinEllipUser() {HRGN hRgn;RECT rect;GetWindowRect(&rect);hRgn = CreateEllipticRgn(rect.left, rect.top, rect.right, rect.bottom);SetWindowRgn(hRgn, TRUE); }?
下面是一個合并兩塊矩形區(qū)域并填充顏色的代碼及效果:
case WM_PAINT:{PAINTSTRUCT ps;HDC hdc = BeginPaint(hWnd, &ps);// TODO: 在此處添加使用 hdc 的任何繪圖代碼...//創(chuàng)建兩個方形區(qū)域。HRGN rgnRect1 = CreateRectRgn(10, 10, 100, 100);HRGN rgnRect2 = CreateRectRgn(50, 50, 200, 200);//合并兩個區(qū)域。 CombineRgn(rgnRect1, rgnRect1, rgnRect2, RGN_XOR);//創(chuàng)建畫刷。HBRUSH hbrush = CreateSolidBrush(RGB(255, 0, 0));//填充區(qū)域。 FillRgn(hdc, rgnRect1, hbrush);//刪除畫刷. DeleteObject(hbrush);//刪除創(chuàng)建的兩個區(qū)域. DeleteObject(rgnRect1);DeleteObject(rgnRect2);EndPaint(hWnd, &ps);break;}??
轉載于:https://www.cnblogs.com/milanleon/p/7418009.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 作业三以及考试
- 下一篇: Error:java: JDK isn'