-
自定义弹出框:
1)弹出框的背景需要在入口函数安装钩子(用完需要卸载钩子CMenuWndHook::UnInstallHook):
2)弹出框若提示语内容太多,换行后需要自适应高度,需要注意设置frameSize属性,该属性是必须:
-
自定义的非模式窗口,如果宽度或者高度小于200,需要设置minSize属性,因为SHostWnd默认最小是200x200。包括切换系统主题或者修改屏幕分辨率的时候,界面都会随之改变大小,设置minSize属性就可以强制窗口大小不变。
-
当使用SHostDialog或者继承类显示自定义的弹出窗口时,该窗口的布局文件根节点<SOUI>不能设置wndType="appMain"属性,否则该窗口退出时,消息会传递到父窗口,导致父窗口(主窗口)也跟着退出。
-
当<text>使用multiLines="1"时,为了让其父窗口能够自适应文本的高度,<text>必须设置maxWidth属性
-
启用Win7的毛玻璃效果,需要先设置窗口的<SOUI>节点属性translucent="0",然后注释OnCreate里面的DwmExtendFrameIntoClientArea,并调用DwmEnableBlurBehindWindow:
int CMainDlg::OnCreate(LPCREATESTRUCT lpCreateStruct){#ifdef DWMBLUR //win7毛玻璃开关 //MARGINS mar = {-1}; //DwmExtendFrameIntoClientArea(m_hWnd, &mar); DWM_BLURBEHIND bb = {0}; bb.dwFlags = DWM_BB_ENABLE; bb.fEnable = true; bb.hRgnBlur = NULL; DwmEnableBlurBehindWindow(m_hWnd, &bb);#endif}