这里说的不规则窗口指的是,在一般的矩形窗口的内部扣掉一片(如矩形),剩下的部分成为一个新的窗口。
当然,新的窗口不包括已扣掉的部分。
方法1:
在对话框的OnInitDialog() 或 CWnd派生类的OnCreate 中添加代码
CRect rect1;
GetWindowRect(rect1);
CRect rect2(rect1.left+100, rect1.top+70, rect1.left+350, rect1.top+300);
CRgn rgn1;
rgn1.CreateRectRgn(rect1.left, rect1.top, rect1.right, rect1.bottom);
CRgn rgn2;
rgn2.CreateRectRgn(100, 70, 100+rect2.right/2, 70+rect2.bottom/2);
CRgn rgn;
rgn.CreateRectRgn(0, 0, 1, 1);
rgn.CombineRgn(&rgn1, &rgn2, RGN_DIFF);//从rgn1中将rgn2抠出
SetWindowRgn((HRGN)rgn,TRUE);//设置窗口区域
方法2:
设置窗口属性为透明属性(WS_EX_LAYERED),窗口背景图为中间有部分为全透明的图片。(见下一篇)