贝壳界面库记录1-界面圆角实现


这段时间来对贝壳界面库的学习,对现实技术和细节已经非常熟悉了。

做一些总结。

一般写圆角的时候直接不OnSize里

   //HRGN hrgn = ::CreateRoundRectRgn(0,0,601,440,8,8);
  //::SetWindowRgn(m_hWnd,hrgn,TRUE);

会写CSS的对上面的图形结构一定不陌生。

和纯CSS写圆角一个原理。

贝壳里的圆角就是这么实现的

  rgnWindow.CreateRectRgn(rcClient.left, rcClient.top + 3, rcClient.right, rcClient.bottom);
  rgnAdd.CreateRectRgn(rcClient.left, rcClient.top, rcClient.right-4, rcClient.top + 1);

  rgnAdd.OffsetRgn(2, 0);

  rgnWindow.CombineRgn(rgnAdd, RGN_OR);

  rgnAdd.SetRectRgn(rcClient.left, rcClient.top, rcClient.right - 2, rcClient.top + 1);
  rgnAdd.OffsetRgn(1, 1);
  rgnWindow.CombineRgn(rgnAdd, RGN_OR);


  rgnAdd.SetRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.top + 1);
  rgnAdd.OffsetRgn(0, 2);
  rgnWindow.CombineRgn(rgnAdd, RGN_OR);


  rgnAdd.SetRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.top + 1);
  rgnAdd.OffsetRgn(0, 3);
  rgnWindow.CombineRgn(rgnAdd, RGN_OR);

原文地址:https://www.cnblogs.com/mokliu/p/2138836.html