ハンドビュー、ドキュメント、メインフレームを備えたSDIアプリケーションがあります。ビュークラスには、別のダイアログ、たとえばチャーターダイアログを開くためのボタンがあります。そのダイアログを開き、ビューから初期値を送信してダイアログで変数を割り当てたいのですが、ダイアログクラスでメッセージイベントをキャッチできません。以下に私のコードとして:
// button onclick to show new dialog
charteringDlg = new CharteringDlg();
// show chartering dialog
if(charteringDlg->Create(IDD_DIALOG_CHATTERING, GetDesktopWindow()))
{
bChartering = true;
charteringDlg->MoveWindow(900,300,450,300);
charteringDlg->ShowWindow(SW_SHOW);
int temp = 12;
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
}
チャーターダイアログでは、以下のようなメッセージを処理します
ON_MESSAGE(UWM_MYMESSAGE_CHARTERING, &CharteringDlg::OnSetShowTemp)
傭船機能
LRESULT CharteringDlg::OnSetShowTemp(WPARAM, LPARAM lParam)
{
int * s = (int *)lParam;
return 0;
}
OnSetShowTemp()関数でブレークポイントを設定しましたが、そこにジャンプできません。どんなアイデアでも大歓迎です。
ダイアログのメンバーの1つに初期値を割り当てるために、メッセージを送信する必要はありません。
値を直接割り当てることができます。
だから代わりに
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
次のようなものが必要です。
charteringDlg->thevalueorwhatever = 12;
そしてところで:
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
とにかく間違っているので、メッセージをメインウィンドウではなくダイアログに送信する必要があります。
charteringDlg->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加