当前位置: 首页 > news >正文

使用scrollview 时,自动滚动条和视图大于子view时居中显示

<group text="模板预览" size="-2,0" weight="1" layout="vbox"><scrollview name="sv_preview" size="-2,0" weight="1" viewSize="-1,-1" layout="vbox" gravity="center"><img name="wnd_preview" size="-1,-1"/></scrollview>
</group>

使用scrollview 似乎没有好方法使它同时在小尺寸时显示滚动条,大尺寸时又自动使用scrollview 尺寸来实现布局。我先说一下我的需求,预览窗口的子视图大小不确定,当scrollview 无法显示全子视图时需要显示滚动条。大scrollview 尺寸大于子视图时又能正确使用布局(我这里是居中显示)

研究了一下源码,似乎它本身并不支持这个操作,如果需要还需要修改源码,本着能外不内的原则 在外面处理,勉强达到了效果,如果有更好办法欢迎讨论。

void OnPreviewSizeChanged(EventArgs *e);

EVENT_ID_HANDLER(R.id.wnd_preview, EventSwndSize::EventID, OnPreviewSizeChanged)
EVENT_ID_HANDLER(R.id.sv_preview, EventSwndSize::EventID, OnPreviewSizeChanged)
void CMainDlg::OnPreviewSizeChanged(EventArgs *e)
{SScrollView *pScrollView = FindChildByID2<SScrollView>(R.id.sv_preview);CRect szPreviewImgSize = pScrollView->FindChildByID2<SImageWnd>(R.id.wnd_preview)->GetWindowRect();CRect szPreviewSize = pScrollView->GetClientRect();pScrollView->GetEventSet()->setMutedState(TRUE);if (szPreviewImgSize.Width() > szPreviewSize.Width()){pScrollView->SetAttribute(L"viewSize", L"-1,-1");}else{pScrollView->SetAttribute(L"viewSize", L"-2,-1");}pScrollView->RequestRelayout();pScrollView->UpdateLayout();pScrollView->GetEventSet()->setMutedState(FALSE);    
}

同时处理SScrollView和子视图大小变化事件,动态设置viewSize

QQ录屏20251003092222

http://www.dtcms.com/a/438740.html

相关文章:

  • 如何最小阻力练习软件测试相关的英语口语
  • 专门做视频点评的网站iis 新建网站没有文件夹权限
  • 【完整源码+数据集+部署教程】 小麦病害分割系统: yolov8-seg-dyhead
  • Java 黑马程序员学习笔记(进阶篇16)
  • 自适应网站功能网站开发开发的前景
  • 整套网站设计网络服务费
  • python autocad comtypes+pyautocad二次开发 pywin32连不上高版本cad解决办法
  • Linux——0:安装与配置、命令、gcc
  • 健康管理实训室:创新教学场景,推动健康管理人才实战能力提升
  • 网站建设设计模板工业设计 做自己的网站 知乎
  • CAN-FIFO 确认处理(FIFO Acknowledge Handling)
  • Java--多线程知识(四)
  • 浅谈内存DDR——DDR4的RASR/Bank Group等技术
  • 网站上传模板后xml天气预报网站怎么做
  • 人工智能:从技术本质到未来图景,一场正在重塑世界的变革
  • 成都私人网站制作做读书网站的前景
  • linux学习笔记(11)fork详解
  • Streamlit:CSS——从基础到实战美化应用
  • ORB_SLAM2原理及代码解析:Tracking::MonocularInitialization() 函数
  • JVM的类加载机制
  • 6. Pandas 数据排序与排名
  • lanqiao1110 小王子单链表——单链表
  • 张店网站建设价免费的编程自学软件
  • 农机网站建设目标php网站mysql数据库导入工具
  • 浙江网站建设平台app开发费用计入什么科目
  • 2025年渗透测试面试题总结-100(题目+回答)
  • 做网站赚钱容易吗推广赚钱平台有哪些
  • AutoOps:简单的 Elasticsearch 集群监控与管理现已支持本地部署
  • Async++ 源码分析3---cancel.h
  • Async++ 源码分析4---continuation_vector.h