EM_SETCUEBANNER глючит на текстовом поле
В результате получаю следующую картину:Как видите, в поле «Пароль» почему-то получается всякая байда вместо серого текста cue banner'а. ЧЯДНТ?
P.S. Объясните значение параметра LPARAM для EM_SETCUEBANNER, а то MSDN не открывает статью по этому сообщению, да и по многим другим тоже.
EM_SETCUEBANNER Message
--------------------------------------------------------------------------------
The EM_SETCUEBANNER message sets the textual cue, or tip, that is displayed by the edit control to prompt the user for information. For more discussion of this, see the Remarks section.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) EM_SETCUEBANNER, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = (LPARAM) (LPCWSTR) lParam;
);
Parameters
wParam
Not used; must be zero.
lParam
Pointer to a Unicode string that contains the text to display as the textual cue.
Return Value
If the message succeeds, it returns TRUE. Otherwise it returns FALSE.
Remarks
An edit control that is used to begin a search may display "Enter search here" in gray text as a textual cue. When the user clicks the text, the text goes away and the user can type.
Note To use this API, you must provide a manifest specifying Comclt32.dll version 6.0. For more information on manifests, see Using Windows XP Visual Styles.
Message Information
Header Declared in Commctrl.h
Minimum operating systems Windows XP
--------------------------------------------------------------------------------
The EM_SETCUEBANNER message sets the textual cue, or tip, that is displayed by the edit control to prompt the user for information. For more discussion of this, see the Remarks section.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) EM_SETCUEBANNER, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = (LPARAM) (LPCWSTR) lParam;
);
Parameters
wParam
Not used; must be zero.
lParam
Pointer to a Unicode string that contains the text to display as the textual cue.
Return Value
If the message succeeds, it returns TRUE. Otherwise it returns FALSE.
Remarks
An edit control that is used to begin a search may display "Enter search here" in gray text as a textual cue. When the user clicks the text, the text goes away and the user can type.
Note To use this API, you must provide a manifest specifying Comclt32.dll version 6.0. For more information on manifests, see Using Windows XP Visual Styles.
Message Information
Header Declared in Commctrl.h
Minimum operating systems Windows XP
Заметьте, строка в юникод в lParam:
интересно, если попробовать SendMessage вместо SendDlgItemMessage, результат поменяется?
Цитата: sadovoya
Заметьте, строка в юникод в lParam
Вот ведь ѣ! :D
Я не сомневаюсь, что MSDN тоже была бы информативной, если бы открывала мне эту статью. Но по ссылке EM_SETCUEBANNER я получаю вот что:
Попробовал с L"" — всё работает! Благодарю за помощь ☺
P.S. Думаю, замена на SendMessage ничего бы не дала, в результате-то всё равно она вызывается,