我有一些data output text boxes(文本框没有边框,背景与窗口的其余部分相同),我正在尝试与标准编辑控件+旋转按钮对齐,以表示数字列,其中一个可以编辑:
我可以在Delphi / C ++ Builder表单设计器中手动对齐这些,但是当我在不同版本的Windows或不同的DPI上查看表单时,文本不再是右对齐的,可能是因为旋转按钮间距,边框等的差异
我可以使用EM_GETMARGINS来确定旋转按钮的宽度,但是如何确定编辑控件的边距和边框的大小?我尝试过各种EM_POSFROMCHAR,ClientToScreen,GetSystemMetrics(SM_CXBORDER),GetSystemMetrics(SM_CXEDGE)和GetThemeMargins的组合,但到目前为止,我找不到一个有效且有意义的组合。
更多详情:
答案 0 :(得分:2)
使用Win32 API GetWindowRect()
和GetClientRect()
方法。边界将是两个矩形之间的差异。但这只会让你接近边界。客户区内可能有额外的间距。