SoUI笔记
2015-12-30 00:00
225 查看
摘要: 使用SoUI开发界面程序时,经常碰到一些问题,找了许久才找到原因,因此将这些记录下来,当作备忘。
自定义弹出框:
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:
自定义弹出框:
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 }
相关文章推荐
- SOUI的SMessage函数使用
- SOUI GDI+渲染引擎下的字体特效
- SOUI创建子窗口和父子窗口通讯
- 在 Soui 中嵌入 MiniBlink 初体验(三):实现一个界面友好动态可交互的饼图
- 在 Soui 中嵌入 MiniBlink 初体验(二):解决本地 Html 文件显示 ECharts 失败的问题
- 在 Soui 中嵌入 MiniBlink 初体验(一):支持百度 ECharts 开源可视化库显示
- 发布一个 SOUI 的 Release 版本需要哪些文件
- 思考的救赎(二):三消游戏功能完善
- 思考的救赎(一):三消游戏实现探索
- SOUI之DIY: 自定义控件和消息实现
- 菜鸟与 cef 的邂逅之旅(四):Soui 离屏渲染封装 Cef3 细节分析
- 菜鸟与 cef 的邂逅之旅(三):Cef3 中 C++ 与 JavaScript 的互相调用
- 菜鸟与 cef 的邂逅之旅(二):Soui 中接入 Cef3 的实现
- 基于 wke 的浏览器:如何实现 js 和 c++ 的互相调用
- 单标签页简易浏览器实现
- SOUI假窗口释放资源后操作界面控件崩溃
- vs2015使用向导创建SOUI项目问题记录
- 整合SOUI的默认资源(soui-sys-resource.dll)
- 创建及使用UIAlertController
- ListView requestFocus 导致刷新