英語版Windowsで画面が切れるのですが – プログラミング – Home

英語版Windowsで画面が切れるので...
 
通知
すべてクリア

[解決済] 英語版Windowsで画面が切れるのですが


タフガイ
 タフガイ
(@タフガイ)
ゲスト
結合: 19年前
投稿: 30
Topic starter  

日本語版WindowsXP用のMFCアプリ(ダイアログベース)を以前製作しました。
顧客から英語版のWindowsXPでも使用したいとの要望があり、フォントの設定等は変更し
たのですが、画面が切れてしまいます。

サイズはMoveWindowで800×600に固定しています。
日本語版の方では問題なく表示されるのですが、英語版の方ではコントロール類全般が
大きくなったような感じで右側と下側が切れてしまいます。

日本語版のVC6.0++で開発しているのですが、これのリソースではうまくいかないのでし
ょうか?
何か解決策がありましたら教えて頂けないでしょうか。
よろしくお願いします。


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

ダイアログ上のコントロールのサイズは、ダイアログ単位で記述されます。
ダイアログ単位とは、そのダイアログのフォントサイズを基準に決定される単位で、横
方向は文字幅の 1/4、縦方向は文字の高さの 1/8 が1単位となります。
そのため、ダイアログで使うフォントが違えば、コントロールのサイズが違ってきま
す。
800x600 というサイズは、日本語フォントを使ったときに、コントロールがちょうど良
く収まるサイズだと思います(800x600 というサイズが先にあって、それに合わせてコ
ントロールの寸法を決定したのかもしれませんね)。
フォントサイズを小さくすれば、画面内に収まるようにできると思いますが、日本語フ
ォントとぴったり同じにはならないかもしれません。
コントロールの大きさを固定して、それが収まるように画面サイズを変えてよいのであ
れば、MapDialogRect という関数が使えます。
残念ながら、ピクセル単位での大きさを固定し、そこから適切なダイアログ単位のサイ
ズを算出する関数はありません。


返信引用
タフガイ
 タフガイ
(@タフガイ)
ゲスト
結合: 19年前
投稿: 30
Topic starter  

シャノンさん

おっしゃる通り、リソースエディタでのフォントがゴシックになっていたのが原因のよ
うでした。
これを英語版Windowsの標準的なフォントに変更したらすんなり上手くいきました。
リソースエディタでダイアログごとフォントを変更することがないので、うっかり忘れ
ていました。

難解な問題かと思っていましたが、スムーズに解決できて嬉しく思っています。

丁寧な回答ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました