PCSearch

1.hinstance:GetModuleHandle(NULL)

2.窗口直角:

    方法1:在Oncreate函数中添加以下代码,然而这种方法会导致窗口阴影无效

1 LONG styleValue = ::GetWindowLong(*this,GWL_STYLE);
2 styleValue &= ~WS_CAPTION;
3 ::SetWindowLong(*this,GWL_STYLE,styleValue | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);

    方法2:在OnPrepare函数以及其它需要改变窗口大小的地方添加以下代码。此方法无副作用

1 RECT rcClient;
2 ::GetClientRect(*this,&rcClient);
3 HRGN rgn = CreateRoundRectRgn(rcClient.left,rcClient.top,rcClient.right,rcClient.bottom,0,0);
4 SetWindowRgn(m_hWnd,rgn,true);

   SetWindowRgn() 函数:用于设置了一个窗口的区域.只有被包含在这个区域内的地方才会被重绘,而不包含在区域内的其他区域系统将不会显示.

参考:https://www.cnblogs.com/Jogging/p/zhuan-tiDUILIB-Win32-tou-ming-xiao-guomd.html    专题:DUILIB Win32 透明效果

           https://blog.csdn.net/u012709815/article/details/18763599    setwindowrgn

3.单击任务栏最小化(重新出现在屏幕上)

duiFrame->Create(NULL,_T("MainFrameWnd"),UI_WNDSTYLE_FRAME,WS_EX_WINDOWEDGE,500,300);

4.单击托盘图标置顶

SetForegroundWindow(m_hWnd);

posted @ 2019-08-30 20:35  _KikyoBK  Views(175)  Comments(0Edit  收藏  举报