アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、C#でwindows用アプリケーションを作成しています。
開発環境はWindosXPの画面にあわせてつくりました。

このアプリケーションを実行するパソコンの
【画面のプロパティ】→【デザイン】→フォントサイズ
フォントサイズを大きくしたり小さくしたりすることによって、
作成した画面上のラベルの位置がずれて、ばらばらになってしまいます。

対策は無いでしょうか?

A 回答 (2件)

ボタンなどのコントロールをリソースから作成すると


サイズはシステムのフォントに依存してしまいます。

これを避けたいのであれば、ダイアログタイプのウインドウを止め、
親ウインドウを非ダイアログとして作成して、
(ここから内容メイン)
コントロールを、CreateWindowEx関数で、
CreateWindowEx(0,"button,・・・);
と、作成していけばサイズ依存しないはずです。
ちなみにVBは標準でダイアログタイプにしてしまうため、
別PC上でサイズが変化してしまう症状があります。
ただし、DPIの変化よっても影響を受けないウインドウ、コントロール
作成は、DPI値でも検出しない限り不可能です。
    • good
    • 0

★DPI のアドバイス


・私も 2,3 年前に同じ問題に頭を悩ませました。
 私はダイアログのすべてのコントロールを WM_INITDIALOG 部分で再配置する方法を
 取りました。もちろん回答者 No.1 さんのアドバイスにあるような方法でもいけます。
 フォントがずれるために現在設定されている DPI より計算して描画します。
・下の『参考URL』をどうぞ。
 あと『画面のプロパティ』のフォントのサイズだけならシステム・フォントを使わずに
 固定ピッチの TrueType フォントを使えばずれずに済むと思います。
・以上。

参考URL:http://www.microsoft.com/japan/msdn/windows/wind …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!