こんにちわ~、不束者でありますがよろしくお願いいたします。
質問内容はダイアログの戻り値についてなのですが、私はいまダイアログにてポート番
号とサーバー名を
入力してもらい、そのサーバーに入力ポートでTCP接続をするというソフトを作成してい
るのですが、
今のところダイアログで入力した値はグローバル変数経由でほかの処理ルーチンに渡し
ている状況なのです。
やはり私としてはグローバル変数はあまり使いたいものではないので何とかして戻り値
でごまかしたく、いろいろ調べたのですが今のところEndDialog()の第二引数でint型を
返せるということしか
分かりませんでした。何かこれ以外に戻り値を戻す有効な手段はないものでしょうか?
ご返信のほどよろしくお願いいたします。
EndDialog が2引数を持っているところからして環境は SDK だと思いますが、
次に質問する機会があったら環境を書いてくださいね。
EndDialog の第二引数に何を指定しなければならないという決まりはありませんが、
ダイアログを閉じる要因となったボタンの ID を返すのが慣習らしいです。
もちろんポート番号を返しても誤りではありませんが、サーバ名が返せませんね。
ダイアログを表示するときに、関数名の末尾に Param がつくヤツ(DialogBoxParam /
DialogBoxIndirectParam / CreateDialogParam / CreateDialogIndirectParam)を使え
ば、呼び出し元からダイアログに値を渡すことができます。
ダイアログ呼び出し元で、入力する情報を保持する構造体を用意しておいて、パラメー
タにそのアドレスを渡すというのはいかがでしょうか。
むむ、ご指摘ありがとうございました。次からはきちんと環境も書くようにしたいと思
います。
それにしてもアドレスを渡すとは盲点でした。これでグローバル変数をなくすことがで
きそうです。本当にありがとうございました。