Partager via


code de notification PSN_QUERYINITIALFOCUS

Envoyé par une feuille de propriétés pour permettre à une page de feuille de propriétés de spécifier le contrôle de boîte de dialogue qui doit recevoir le focus initial. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .

PSN_QUERYINITIALFOCUS

    lppsn = (LPPSHNOTIFY) lParam; 

Paramètres

lParam

Pointeur vers une structure PSHNOTIFY . Cassez le membre lParam de cette structure en type HWND pour récupérer le handle du contrôle qui recevra le focus par défaut. La structure contient une structure NMHDR en tant que premier membre, hdr. Le membre hwndFrom de cette structure NMHDR contient le handle de la feuille de propriétés.

Valeur retournée

Pour spécifier le contrôle qui doit recevoir le focus, retournez le handle du contrôle. Sinon, retournez zéro et le focus ira au contrôle par défaut. Pour définir la valeur de retour, la procédure de boîte de dialogue doit appeler la fonction SetWindowLong avec une valeur DWL_MSGRESULT et retourner TRUE.

Notes

Une application ne doit pas appeler la fonction SetFocus lors de la gestion de ce code de notification. Retournez le handle du contrôle qui doit recevoir le focus, et le gestionnaire de feuilles de propriétés gère le changement de focus.

Le code de notification PSN_QUERYINITIALFOCUS n’est pas envoyé si le gestionnaire de feuilles de propriétés détermine qu’aucun contrôle de la page ne doit recevoir le focus.

Ce fragment de code implémente un gestionnaire simple pour PSN_QUERYINITIALFOCUS. Il demande que le focus initial soit attribué au contrôle Emplacement (IDC_LOCATION).

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

Notes

Ce code de notification n’est pas pris en charge lors de l’utilisation du style de l’Assistant Aero (PSH_AEROWIZARD).

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
En-tête
Prsht.h