ユーザーがプロパティシートの[OK]または[適用]ボタンをクリックし、プログラムが一部のページのデータが無効であると判断した場合、エラーを含むページをエラーを説明するメッセージボックスとともに表示するにはどうすればよいですか?
現在、検証を行うプロシージャは、PSN_APPLY通知の処理中に次のことを行います。
MessageBox (hDlg, "Data must be positive!", "Error", MB_OK);
SetWindowLong (hDlg, DWL_MSGRESULT, PSNRET_INVALID);
これは、検証(A)を実行しているページが現在表示されている場合は問題なく機能しますが、他のページ(B)が表示されている場合は、そのページ(B)が表示された状態でメッセージボックスが表示され、メッセージボックスに応答すると、そのページが表示されます。検証エラー(A)が表示されます。そのページ(A)がPSN_SETACTIVE通知を受け取ると、メッセージボックスが表示されるようにフラグを設定することを考えましたが、それはちょっとおかしなようです。
Win32 APIはC++で、MFCも、NETも、派手なものもありません。