SOUI, UI, just so so!

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 457|回复: 2

关于窗口最大化时,窗口四边小部分被隐藏的问题

[复制链接]

1

主题

3

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2018-1-29 11:38:01 | 显示全部楼层 |阅读模式
本帖最后由 LittleKu 于 2018-1-29 12:29 编辑

这个问题跟SOUI没任何关系,至于为什么,估计得问微软了
如何处理?看二楼老大的回答
回复

使用道具 举报

14

主题

25

帖子

252

积分

超级版主

Rank: 8Rank: 8

积分
252
发表于 2018-1-29 11:49:51 | 显示全部楼层
windows系统下的窗口,如果窗口风格指定为WS_OVERLAPPED,窗口最大化最小化会有过度动画,最大化的时候窗口大小固定会向屏幕外扩展8个点。
之所以这样处理就是为了能够更好的利用屏幕显示可见内容,而不是显示不需要的边框,而且这个8个点的大小是固定的,目前为止我没有找到方法修改。
但是如果风格指定为WS_POPUP,这个扩展值默认是0,而且会在 WM_GETMINMAXINFO这个消息中允许用户调节。
参考:
  1. void SHostWnd::OnGetMinMaxInfo(LPMINMAXINFO lpMMI)
  2. {
  3.     HMONITOR hMonitor = ::MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTONULL);

  4.     if (hMonitor)
  5.     {
  6.         MONITORINFO mi = {sizeof(MONITORINFO)};
  7.         ::GetMonitorInfo(hMonitor, &mi);

  8.         CRect rcWork = mi.rcWork, rcMonitor = mi.rcMonitor;
  9.                 CRect rcMaxInset = m_hostAttr.GetMaxInset(GetScale());
  10.         lpMMI->ptMaxPosition.x = abs(rcWork.left - rcMonitor.left) - rcMaxInset.left;
  11.         lpMMI->ptMaxPosition.y = abs(rcWork.top - rcMonitor.top) - rcMaxInset.top;
  12.         lpMMI->ptMaxSize.x = abs(rcWork.Width())+ rcMaxInset.right + rcMaxInset.left;
  13.         lpMMI->ptMaxSize.y = abs(rcWork.Height())  + rcMaxInset.bottom + rcMaxInset.top;
  14.         lpMMI->ptMaxTrackSize.x = abs(rcWork.Width())  + rcMaxInset.right + rcMaxInset.left;
  15.         lpMMI->ptMaxTrackSize.y = abs(rcWork.Height())  + rcMaxInset.bottom + rcMaxInset.top;
  16.                 CSize szMin = m_hostAttr.GetMinSize(GetScale());
  17.         lpMMI->ptMinTrackSize = CPoint(szMin.cx, szMin.cy);
  18.     }
  19. }
复制代码


m_hostAttr.GetMaxInset(GetScale());是获取soui节点里的maxInset属性。
回复

使用道具 举报

0

主题

1

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2018-1-29 17:35:04 | 显示全部楼层
主窗口类改继承SHostDialog,程序启动由Create改为DoModal
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Setoutsoft Inc. ( 粤ICP备18051196-1 )

GMT+8, 2018-11-17 22:42 , Processed in 0.058948 second(s), 6 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表