walnutcy

不规则窗口的实现

0
阅读(2022)

最近在学习WinCE开发,其实和用VC开发没有太大的差别,

这里演示的是一个不规则界面的实现方式,例程窗口也很简单,只是两个矩形框的或操作。但要实现更复杂的窗口,从原理上来讲,是一回事,就是利用CRgn的与,或,或非等进行布尔运算,从而得到一个不规则的窗体。

这里用到的主要函数为:

 m_wndRgn.CreateRectRgn(0, 0, cRect.Width(), cRect.Height());

 VERIFY(rgnTemp.CreateRectRgnIndirect(&rc));
 m_wndRgn.CombineRgn(&m_wndRgn, &rgnTemp, RGN_AND);
 rgnTemp.DeleteObject();

 VERIFY(rgnTemp.CreateRectRgnIndirect(&rc));
 m_wndRgn.CombineRgn(&m_wndRgn, &rgnTemp, RGN_OR);
 rgnTemp.DeleteObject();

 SetWindowRgn((HRGN)m_wndRgn, TRUE);