PSN_APPLY通知コード
ユーザーが [OK]、[閉じる]、または [適用] ボタンをクリックし、すべての変更を有効にすることを示すために、プロパティ シート内のすべてのページに送信されます。 この通知コードは、 WM_NOTIFY メッセージの形式で送信されます。
PSN_APPLY
lppsn = (LPPSHNOTIFY) lParam;
パラメーター
-
lParam
-
ページの ID など、通知コードに関する情報を含む PSHNOTIFY 構造体へのポインター。
戻り値
PSNRET_NOERROR設定して、このページに加えられた変更が有効であり、適用されていることを示します。 すべてのページがPSNRET_NOERROR設定されている場合は、プロパティ シートを破棄できます。 このページに加えられた変更が無効であることを示し、プロパティ シートが破棄されないようにするには、次のいずれかの戻り値を設定します。
- PSNRET_INVALID。 プロパティ シートは破棄されず、フォーカスはこのページに返されます。
- PSNRET_INVALID_NOCHANGEPAGE。 プロパティ シートは破棄されず、ボタンが押されたときにフォーカスがあったページにフォーカスが返されます。
戻り値を設定するには、ページのダイアログ ボックス プロシージャで、DWL_MSGRESULT値を使用して SetWindowLong 関数を呼び出し、ダイアログ ボックス プロシージャが TRUE を返す必要があります。
解説
ユーザーが [OK]、[適用]、または [閉じる] ボタンをクリックすると、プロパティ シートはアクティブなページに PSN_KILLACTIVE 通知を送信し、ユーザーの変更を検証する機会を提供します。 変更が有効な場合、プロパティ シートは各ページにPSN_APPLY通知コードを送信し、対応するアイテムに新しいプロパティを適用するように指示します。
Note
プロパティ シートは、PSN_APPLY通知コードが送信されたときにページの一覧を操作する処理中です。 この通知の処理中にページを追加、削除、または挿入しないでください。 これを行うと、予測できない結果になります。
ユーザー が [ OK] ボタンをクリックすると、lParam が指す PSHNOTIFY 構造体の lParam メンバーは TRUE に設定されます。 また、PSM_CANCELTOCLOSE メッセージが送信され、ユーザーが [閉じる] ボタンをクリックした場合も TRUE に設定されます。 ユーザーが [適用] ボタンをクリックすると、 FALSE に設定されます。
PSHNOTIFY 構造体には、最初のメンバーである hdr として NMHDR 構造体が含まれています。この NMHDR 構造体の hwndFrom メンバーには、プロパティ シートへのハンドルが含まれています。
この通知コードを処理するときは 、EndDialog 関数を呼び出さないでください。
モーダル プロパティ シートは、ユーザーが [OK] ボタンをクリックし、すべてのページが PSN_APPLYに応答してPSNRET_NOERROR値を返す場合に破棄されます。 いずれかのページがPSNRET_INVALIDまたはPSNRET_INVALID_NOCHANGEPAGEを返した場合、適用プロセスはすぐに取り消されます。 取り消しページの後のページには、PSN_APPLY通知コードは表示されません。
この通知コードを受信するには、PSN_KILLACTIVE通知コードに応答して、ページでDWL_MSGRESULT値をFALSE に設定する必要があります。
Note
Aero ウィザード スタイル (PSH_AEROWIZARD) を使用する場合、この通知コードはサポートされていません。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
Header |
|