加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 对齐文本框

发布时间:2020-12-14 05:36:22 所属栏目:Windows 来源:网络整理
导读:我有一些 data output text boxes(文本框没有边框,背景与窗口的其余部分相同),我正在尝试与标准的编辑控件旋转按钮对齐,以表示一列数字,其中一个可以编辑: 我可以在Delphi / C Builder表单设计器中手动对齐这些,但是当我在不同版本的Windows上或在不同的DPI
我有一些 data output text boxes(文本框没有边框,背景与窗口的其余部分相同),我正在尝试与标准的编辑控件旋转按钮对齐,以表示一列数字,其中一个可以编辑:

我可以在Delphi / C Builder表单设计器中手动对齐这些,但是当我在不同版本的Windows上或在不同的DPI上查看表单时,文本不再是右对齐的,可能是因为旋转按钮的不同间距,边界等

我可以使用EM_GETMARGINS来确定旋转按钮的宽度,但是如何确定编辑控件的边距和边框的大小?我已经尝试了EM_POSFROMCHAR,ClientToScreen,GetSystemMetrics(SM_CXBORDER),GetSystemMetrics(SM_CXEDGE)和GetThemeMargins的各种组合,但到目前为止,我找不到一个有效且有意义的组合.

更多细节:

>环境是Delphi / C Builder XE2.
>数据输出控件是带有BorderStyle bsNone的TEdits.
>编辑旋转按钮是TJvSpinEdit.从查看其来源,它使用EM_SETMARGINS为其旋转按钮留出空间.

解决方法

使用Win32 API GetWindowRect()和GetClientRect()方法.边界将是两个矩形之间的差异.但这只会让你接近边界.客户区内可能有额外的间距.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读