WM_GETTEXTLENGTH message
Applies to: desktop apps only
Determines the length, in characters, of the text associated with a window.
#define WM_GETTEXTLENGTH 0x000E
Parameters
- wParam
-
This parameter is not used and must be zero.
- lParam
-
This parameter is not used and must be zero.
Return value
Type: LRESULT
The return value is the length of the text in characters, not including the terminating null character.
Remarks
For an edit control, the text to be copied is the content of the edit control. For a combo box, the text is the content of the edit control (or static-text) portion of the combo box. For a button, the text is the button name. For other windows, the text is the window title. To determine the length of an item in a list box, an application can use the LB_GETTEXTLEN message.
When the WM_GETTEXTLENGTH message is sent, the DefWindowProc function returns the length, in characters, of the text. Under certain conditions, the DefWindowProc function returns a value that is larger than the actual length of the text. This occurs with certain mixtures of ANSI and Unicode, and is due to the system allowing for the possible existence of double-byte character set (DBCS) characters within the text. The return value, however, will always be at least as large as the actual length of the text; you can thus always use it to guide buffer allocation. This behavior can occur when an application uses both ANSI functions and common dialogs, which use Unicode.
To obtain the exact length of the text, use the WM_GETTEXT, LB_GETTEXT, or CB_GETLBTEXT messages, or the GetWindowText function.
Sending a WM_GETTEXTLENGTH message to a non-text static control, such as a static bitmap or static icon controlc, does not return a string value. Instead, it returns zero.
Requirements
|
Minimum supported client | Windows 2000 Professional |
|---|---|
|
Minimum supported server | Windows 2000 Server |
|
Header |
|
See also
- Reference
- DefWindowProc
- GetWindowText
- GetWindowTextLength
- WM_GETTEXT
- Conceptual
- Windows
- Other Resources
- CB_GETLBTEXT
- LB_GETTEXT
- LB_GETTEXTLEN
Send comments about this topic to Microsoft
Build date: 2/3/2012
If you want to use WM_GETTEXT it's recommended that if you don't know the target title you should use this message to allocate a buffer large enough to support the entire caption of the window. If you want to just provide a buffer it should be in the range 0 - 65536 to be considered safe.
#define MAX_CLASS_NAME = 256
#define MAX_WINDOW_CAPTIONLENGTH = 65536 <--- NOTE: This isn't REAL it's only what would be reasonable on Windows NT.
- 10/13/2010
- eriklitze
If you want to use WM_GETTEXT it's recommended that if you don't know the target title you should use this message to allocate a buffer large enough to support the entire caption of the window. If you want to just provide a buffer it should be in the range 0 - 65536 to be considered safe.
#define MAX_CLASS_NAME = 256
#define MAX_WINDOW_CAPTIONLENGTH = 65536 <--- NOTE: This isn't REAL it's only what would be reasonable on Windows NT.
- 10/13/2010
- eriklitze