Die folgende Information beschreibt, unter welchen Umständen das Verwenden der Funktion SendMessage() oder des SendDlgItemMessage() geeignet ist.
SendMessage() und SendDlgItemMessage() können verwandt werden, um Zeichenfolgen einem List-Feld hinzuzufügen. SendMessage() wird zu dem Senden einer Nachricht zu einem bestimmten Fenster mithilfe Kontrollpunkts zu dem List-Feld verwandt. SendDlgItemMessage() wird zu dem Senden einer Nachricht zu dem unterordneten Fenster eines bestimmten Fensters, das die List-Feld-Ressource-ID verwendet, verwandt. SendDlgItemMessage() wird meist in Funktionen in Hinweisdialogfeld verwandt, die einen Punkt zu dem Dialogfeld und nicht Steuer zu dem unterordneten Fensterelement haben.
Der Aufruf von SendDlgItemMessage()
SendDlgItemMessage (hwnd, id, msg, wParam, lParam)
entspricht dem folgenden Aufruf von SendMessage():
hwnd2 = GetDlgItem (hwnd, id);
SendMessage (hwnd2, msg, wParam, lParam);
Beachten Sie bitte, dass PostMessage() nie zu dem Kommunizieren zu den unterordneten Fenstern in Dialogfeldern aus den folgenden Gründen verwandt werden sollte:
| 1. | Wenn die Nachricht an die Nachrichtenwarteschlange des Steuerelements nicht gesandt wurde, wird PostMessage() nur einen Fehler zurückgeben. Da es die Information nicht an den Aufrufer zurückgibt, wird PostMessage() nicht funktionieren seit viele Nachrichten gesandt werden, um Rückgabeinformation zu steuern.
|
| 2. | Nur 16-Bit: Messaging, wie die Meldung von WM_SETTEXT, die einen weiteren Zeiger auf einer Zeichenfolge enthält, Probleme potenziell verursachen kann, wenn die Meldung von WM_SETTEXT, die einen weiteren Zeiger auf einer Zeichenfolge enthält, gebucht wird, wenn die Meldung von WM_SETTEXT, die einen weiteren Zeiger auf einer Zeichenfolge enthält, die PostMessage()-Funktion verwendet. Der weitere Zeiger kann in einem Puffer zeigen, der sich in dem D (Datensegment) befindet. Das D wird Abrufs möglicherweise verschoben, da PostMessage() die Nachricht nicht unmittelbar verarbeitet. Der weitere Zeiger an dem Puffer wird ungültig sein, wenn das D verschoben wird, bevor die Nachricht verarbeitet wird.
|