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);