DLLでダイアログを表示させるとコントロールがおかしい

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DLLでダイアログを表示させるとコントロールがおかしい

by のぶあや » 2006年10月15日(日) 10:25

確認したところ、DLLのCallback.wbpには とありました。

フォントの作成は

コード: 全て選択

Dim hFont_Modal As HFONT
hFont_Modal=CreateFont(-12,0,0,0,400,0,0,0,128,3,2,1,32,"MS Pゴシック")
とプログラム側と同じになっているので正常に作られていると思います。

フォントの参照ですが、DialogBox関数内で

コード: 全て選択

SendMessage(hModal,WM_INITDIALOG,0,0)
とWM_INITDIALOGが送られ、EventCall_Modal関数内で

コード: 全て選択

Case WM_INITDIALOG
	hModal=hWnd
	CreateWindowEx(&H00000000,"STATIC","Text1",&H50000000,151,142,50,12,hWnd,Static1 As HMENU,GetModuleHandle(0),0)
	SendMessage(GetDlgItem(hWnd,Static1),WM_SETFONT,hFont_Modal As WPARAM,0)
となっているので、WM_SETFONTでフォントが参照されていると思うのですが・・・。

ちなみにプログラム側ではMainWndしかないのでDialogBox関数を覗いても
変数(hDlg As HWND)が1個定義されているだけでした。

またCallback.wbpの元となる*.wndファイルには

コード: 全て選択

FONT      = -12,0,0,0,400,0,0,0,128,3,2,1,32,"MS Pゴシック"
となっていました。(プログラム側、DLL側の両方とも)

by konisi » 2006年10月15日(日) 09:08

プログラム側のCallback.wbpを見てもらえれば解ると思うのですが、
hFont_MainWnd=CreateFont(-12,0,0,0,400,0,0,0,128,3,2,1,32,"MS Pゴシック")
等とフォントを作っています。

ダイアログウィンドウを作るときも通常これが参照されるのでフォントについてうまく行くのですが、DLL側から作る場合うまく参照されないのではないでしょうか?
Callback.wbpにDialogBox関数が定義されていると思うので、眺めてみてください。

DLLでダイアログを表示させるとコントロールがおかしい

by のぶあや » 2006年10月15日(日) 00:58

初めまして、のぶあやと申します。

RADでダイアログウィンドウを作り、表示させる関数をDLLに入れて、
プログラムからDLLをロード、関数を実行するとダイアログは表示できるのですが、
ダイアログに貼り付けたコントロールのフォントのサイズが大きくなってしまいます。

DLL側 プログラム側 タグが上手くいってればいいのですが・・・

それぞれコンパイルして、実行するとフォントのサイズが変わってしまいます。
DLLの明示的読み込み以外は変なことをしていないのでバグだと思い、投稿しました。
なお、暗黙的読み込みにしても同様の現象が発生しました。

ちなみに環境は
AB4.21、AB4.24、AB5CP3+XP Pro
AB4.24+XP Home
です。

できればAB4もこれの修正版を公開してほしいのですが、
すでにAB5がリリースされているので無理でしょうか?

ページトップ