WTL 绘制 圆角对话框 自绘对话框
生活随笔
收集整理的這篇文章主要介紹了
WTL 绘制 圆角对话框 自绘对话框
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要思路:
先把對話框設為透明,再畫一個圓角矩形
具體代碼:
1.設置透明,在OnInitDialog添加如下代碼。
關于SetLayeredWindowAttributes函數的具體使用方法,可參照:
WTL 設置窗口透明 SetLayeredWindowAttributes使用方法
此處的 TRANSPARENT_BACKGROUND_COLOR 是一個自定義顏色,用來透明,不能與對話框需要顯示的顏色相同 ,可以如下定義:
#define TRANSPARENT_BACKGROUND_COLOR RGB(254,253,252)2.用透明色(即TRANSPARENT_BACKGROUND_COLOR )填滿整個窗口
在OnPaint中添加如下代碼:
CPaintDC dc(m_hWnd);CRect dlgRect;GetWindowRect(dlgRect);CBrush Backbr;HBRUSH hBackbr = Backbr.CreateSolidBrush(TRANSPARENT_BACKGROUND_COLOR);CRect allRect(0,0,dlgRect.Width(),dlgRect.Height()); //用于繪制上方白色背景dc.FillRect(&allRect,Backbr);DeleteObject(hBackbr);此時整個窗口都是透明的了。
3.繪制圓角矩形
在OnPaint中添加如下代碼:
CBrush br;HBRUSH hbr = br.CreateSolidBrush(RGB(255,0,0)); //紅色背景dc.SelectBrush(hbr);CPen pen; HPEN hpen = pen.CreatePen(PS_SOLID,1,RGB(0,255,0));//綠色邊線dc.SelectPen(hpen);dc.RoundRect(0,0,dlgRect.Width(),dlgRect.Height(),30,30);DeleteObject(hbr);DeleteObject(hpen);大功告成,效果圖如下:
總結
以上是生活随笔為你收集整理的WTL 绘制 圆角对话框 自绘对话框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React 高阶组件HOC使用总结
- 下一篇: 艺赛旗RPA开发金蝶ERP自动化流程的技