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 [デスクトップ アプリのみ] |
ヘッダー |
|