在分屏窗口中最大化,点击任务栏切换最大,最小化,出现图1情况。

图1

Demo说明:从WindowImplBase派生出来的窗体,未重写父类方法。

注意:分屏的显示器分辨率大于电脑主显示的分辨率。

Bug原因:LPMINMAXINFO的结构体数据赋值错误。

解决方法:修改两个地方

LRESULT WindowImplBase::OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{MONITORINFO oMonitor = {};oMonitor.cbSize = sizeof(oMonitor);::GetMonitorInfo(::MonitorFromWindow(*this, MONITOR_DEFAULTTOPRIMARY), &oMonitor);CDuiRect rcWork = oMonitor.rcWork;rcWork.Offset(-oMonitor.rcMonitor.left, -oMonitor.rcMonitor.top);LPMINMAXINFO lpMMI = (LPMINMAXINFO)lParam;lpMMI->ptMaxPosition.x = rcWork.left;lpMMI->ptMaxPosition.y = rcWork.top;lpMMI->ptMaxSize.x = rcWork.right;lpMMI->ptMaxSize.y = rcWork.bottom;bHandled = FALSE;return 0;
}
LRESULT WindowImplBase::OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{LPRECT pRect=NULL;if ( wParam == TRUE){LPNCCALCSIZE_PARAMS pParam = (LPNCCALCSIZE_PARAMS)lParam;pRect=&pParam->rgrc[0];}else{pRect=(LPRECT)lParam;}if ( ::IsZoomed(m_hWnd)){  // 最大化时,计算当前显示器最适合宽高度MONITORINFO oMonitor = {};oMonitor.cbSize = sizeof(oMonitor);::GetMonitorInfo(::MonitorFromWindow(*this, MONITOR_DEFAULTTONEAREST), &oMonitor);CDuiRect rcWork = oMonitor.rcWork;CDuiRect rcMonitor = oMonitor.rcMonitor;rcWork.Offset(-oMonitor.rcMonitor.left, -oMonitor.rcMonitor.top);pRect->right = pRect->left + rcWork.GetWidth();pRect->bottom = pRect->top + rcWork.GetHeight();return WVR_REDRAW;}return 0;
}

duilib 分屏显示bug相关推荐

  1. pycharm 如何将同一项目中不同模块代码分屏显示

    如图,想把这两个模块代码分屏显示 直接拖动其中一个代码的标签到另一个屏幕上 点击全屏显示

  2. c语言文件分屏显示,通用子目录文件显示方法

    通用子目录文件显示方法 在用CHKDS/V对磁盘子目录及子目录文件进行查找时,由于输出显示信息没有分屏显示,很容易错过需要的信息,并且显示信息没有标记出隐藏的子目录名及子目录文件名,这样就对进一步的子 ...

  3. Intellij IDEA中分屏显示方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 今天才发现IDEA中还有split view的功能,上网查的时候查到了很多莫名其妙的东西. 实际上对 ...

  4. Altium AD20分屏显示,交叉选择模式使用,原理图和PCB器件的同步选择

    AD20可以使用 分屏显示 和 交叉选择,实现对元件快速定位.分类.布局的功能,提高设计效率. 原理图.PCB分屏显示 图纸页 - 右键 - 垂直分割.就会变为分屏显示,搭配双屏使用更加舒适. 交叉选 ...

  5. c# Winform 开发分屏显示应用程序

    c# Winform 开发分屏显示应用程序 原文 http://blog.csdn.net/soft2buy/article/details/7082668 分屏显示即可把一台主机内运行的多个程序分别 ...

  6. Android分屏显示(多窗口支持) 开发总结

    最近公司有分屏显示需求,遇到几点问题 ,在此记录,以做备忘. 我所谓的分屏显示,是在同一个界面内,分屏显示两个app的界面 或者是 注意点1: 系统好像没有获取应用显示的左右或者上下位置的方法,所以我 ...

  7. Android分屏显示

    1,定义 Android N以上系统支持的模式,可上下,左右分屏显示,画中画,多窗口模式 2,方式 要是全局分屏,可在application里设置标签resizeableActivity为true & ...

  8. android分屏模式_Android分屏显示总结

    1. 基础原理 1.1 ActivityRecord.TaskRecord.ActivityStack关系 一个ActivityRecord对应着一个Activity,而一个Activity可能对应着 ...

  9. java如何控制分屏显示,intellij idea 分屏设置 与快捷键

    1.找到分屏功能 File -> setting -> keymap,搜索(注意大小写): Split Vertically 水平分屏 Split Horizontally 垂直分屏 2. ...

最新文章

  1. 爬取虎牙之一:(王者荣耀主播信息普通爬取)
  2. 大连交通大学计算机网络,计算机网络题库(大连交通大学)chapter5.doc
  3. httpHandlers和httpModules接口介绍 (5)
  4. vue-axios interceptors
  5. vba mysql连接字符串_分享一个VBA连接mysql数据库的方法
  6. Jupyter Notebook使用说明
  7. 【ES】分布式调度系统之 Elastic-Job-Lite
  8. android 快捷方式 未安装该应用程序,android,解决手动创建的桌面快捷方式无法跳转到制定的activity的问题,提示未安装应用程序...
  9. 排序(python)
  10. asp.net mvc源码分析-Action篇 DefaultModelBinder
  11. Scale-Dependent 3D Geometric Features
  12. 安装freetds小记
  13. Linux 3.2.8 内核启动过程
  14. CRNN论文翻译——中文版
  15. 在线考试系统软件测试总结,基于智慧校园平台的在线考试系统应用研究
  16. 写在博士旅程之前|博士第一年|博士第三年|博士第四年
  17. 2018蓝桥杯校选复现3
  18. JAVA小记3(第三周)
  19. 知乎:电脑长时间不关机会缩短电脑寿命吗?
  20. 数据与广告系列三十二:重排ReRank,广告推荐算法链路上的背叛者,生态系统格局的重塑者...

热门文章

  1. 网吧机房都有什么硬件设备 具体都有什么用?
  2. 教你如何在腾讯云阿里云薅羊毛
  3. android elevation 白色,关于android:elevation的疑问
  4. Zigbee efr32 有线网关接入HASS中的ZHA,实现设备控制
  5. 世界首例!神经调控成功应用于难治性抑郁症治疗
  6. 接入层交换机信息流量方向定义
  7. python使用mysql实例教程_Python操作Mysql实例代码教程在线版(查询手册)_python
  8. Hibernate 返回类型转Integer
  9. Linux查看系统状态-ZZT
  10. vs项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序的解决办法