いくつかのデータ出力テキスト ボックス(境界線がなく、ウィンドウの残りの部分と同じ背景を持つテキスト ボックス) があり、数値の列を表すために、標準の編集コントロール + スピン ボタンに合わせようとしています。そのうちの 1 つを編集できます。
これらを Delphi/C++Builder フォーム デザイナで手動で揃えることはできますが、別のバージョンの Windows または別の DPI でフォームを表示すると、おそらくスピンボタンの間隔、境界線など
EM_GETMARGINS を使用してスピン ボタンの幅を決定することはできますが、エディット コントロールの余白と境界線のサイズを決定するにはどうすればよいでしょうか。EM_POSFROMCHAR、ClientToScreen、GetSystemMetrics(SM_CXBORDER)、GetSystemMetrics(SM_CXEDGE)、および GetThemeMargins のさまざまな組み合わせを試しましたが、これまでのところ、機能し、意味のある組み合わせが見つかりません。
詳細:
- 環境は Delphi / C++Builder XE2 です。
- データ出力コントロールは、BorderStyle bsNone を持つ TEdit です。
- 編集 + スピン ボタンは TJvSpinEdit です。ソースを表示すると、EM_SETMARGINS を使用してスピン ボタン用のスペースが確保されます。