![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
маска для вводимого в EditBox текста [D7, WinXP]
tradakad © (2005-01-26 10:39:00)есть EditBox
hMsgEditConf:=CreateWindowEx(
WS_EX_CLIENTEDGE,
'Edit',
'',
WS_VISIBLE or WS_CHILD or ES_LEFT or ES_AUTOHSCROLL,
10,85,280,20,Handle,0,hInst,nil
);
как можно сдеалть чтобы вводимый текст отображался каким нибудь символом (например *) как в окна ввода паролей?
tradakad (2005-01-26 14:18:00) [1]вот моя ошибка . так я и сделал но обрабатывал WM_KEYDOWN/ спасибо большое!
SammIk (2005-01-26 12:44:00) [2]ES_PASSWORD = 00000020h
Стиль такой, будет * отобразать.
Можно сделать саб классинг, тогда можно любым символом затенить.
Если много таких контролов, то лучше суперклассинг.
Саб классинг:
LONG SetWindowLong(Вернет адрес старый адрес процедуры.
HWND hWnd, // handle to window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);
SetWindowLong(hEdit,GWL_WNDPROC,@NewEditProc);
Процедура имеет такойже прототип как и обычное окно.
Обробатываешь нужное сообщение
После результату присваеваешь 0.
If msg=WM_CHAR
Оброботка
result:=0;
else
CallWindowProc(OldEditProk,hEdit(Хендл),Msg,wParam,lParam)
Как видешь в любом другом случае нуно вызвать CallWindowProc
ПЕрвый параметр это адрес старой процедуры, остольное тоже что
приходит в оконную процедуру.