- ベストアンサー
作成したアプリケーションの画面が、デスクトップのデザインのフォントの大きさによって文字がずれたりしてしまいます。
現在、C#でwindows用アプリケーションを作成しています。 開発環境はWindosXPの画面にあわせてつくりました。 このアプリケーションを実行するパソコンの 【画面のプロパティ】→【デザイン】→フォントサイズ フォントサイズを大きくしたり小さくしたりすることによって、 作成した画面上のラベルの位置がずれて、ばらばらになってしまいます。 対策は無いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ボタンなどのコントロールをリソースから作成すると サイズはシステムのフォントに依存してしまいます。 これを避けたいのであれば、ダイアログタイプのウインドウを止め、 親ウインドウを非ダイアログとして作成して、 (ここから内容メイン) コントロールを、CreateWindowEx関数で、 CreateWindowEx(0,"button,・・・); と、作成していけばサイズ依存しないはずです。 ちなみにVBは標準でダイアログタイプにしてしまうため、 別PC上でサイズが変化してしまう症状があります。 ただし、DPIの変化よっても影響を受けないウインドウ、コントロール 作成は、DPI値でも検出しない限り不可能です。
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★DPI のアドバイス ・私も 2,3 年前に同じ問題に頭を悩ませました。 私はダイアログのすべてのコントロールを WM_INITDIALOG 部分で再配置する方法を 取りました。もちろん回答者 No.1 さんのアドバイスにあるような方法でもいけます。 フォントがずれるために現在設定されている DPI より計算して描画します。 ・下の『参考URL』をどうぞ。 あと『画面のプロパティ』のフォントのサイズだけならシステム・フォントを使わずに 固定ピッチの TrueType フォントを使えばずれずに済むと思います。 ・以上。