次の方法で共有


PSN_QUERYINITIALFOCUS通知コード

プロパティ シート ページに、最初のフォーカスを受け取るダイアログ ボックス コントロールを指定する機会を提供するために、プロパティ シートによって送信されます。 この通知コードは、 WM_NOTIFY メッセージの形式で送信されます。

PSN_QUERYINITIALFOCUS

    lppsn = (LPPSHNOTIFY) lParam; 

パラメーター

lParam

PSHNOTIFY 構造体へのポインター。 既定でフォーカスが与えられるコントロールのハンドルを取得するには、この構造体の lParam メンバーを HWND 型にキャストします。 構造体には、最初のメンバーである hdr として NMHDR 構造体が含まれています。この NMHDR 構造体の hwndFrom メンバーには、プロパティ シートへのハンドルが含まれています。

戻り値

フォーカスを受け取るコントロールを指定するには、コントロールのハンドルを返します。 それ以外の場合は、0 を返し、フォーカスは既定のコントロールに移動します。 戻り値を設定するには、ダイアログ ボックス プロシージャでDWL_MSGRESULT値を指定して SetWindowLong 関数を呼び出し、TRUE を返す必要があります。

解説

アプリケーションは、この通知コードの処理中に SetFocus 関数を呼び出してはなりません。 フォーカスを受け取るコントロールのハンドルを返します。プロパティ シート マネージャーはフォーカスの変更を処理します。

プロパティ シート マネージャーが、ページ上のコントロールがフォーカスを受け取らないと判断した場合、PSN_QUERYINITIALFOCUS通知コードは送信されません。

このコード フラグメントは、PSN_QUERYINITIALFOCUSの単純なハンドラーを実装します。 最初のフォーカスを Location コントロール (IDC_LOCATION) に指定するように要求します。

case PSN_QUERYINITIALFOCUS :
    SetWindowLong(hDlg,DWL_MSGRESULT, (LPARAM)GetDlgItem(hDlg, IDC_LOCATION));
    return TRUE;
...

Note

この通知コードは、Aero ウィザード スタイル (PSH_AEROWIZARD) を使用する場合はサポートされていません。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー
Prsht.h