| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Edit |
| Автор: ZufuS 20.12.2007, 00:50 |
| Как установить вывод текста в центре и цвет Edit'а, и как получить его содержимое? |
| Автор: 586 20.12.2007, 01:49 |
стиль ES_CENTER WM_CTLCOLOREDIT SetTextColor((HDC)wParam, color); SetBkColor((HDC)wParam, bkcolor); return (INT_PTR)GetStockObject(...); GetDlgItemText GetWindowText GetDlgItem WM_GETTEXT остальное в MSDN |
| Автор: ZufuS 20.12.2007, 02:03 |
| А выравнивание текста по центру вертикали не предусмотрено? Не получается установить цвет SetBkColor(GetDC(hEdit[0][0]), RGB(255,0,0)); |
| Автор: ZufuS 20.12.2007, 02:42 |
| Надо присвоить Edit'у оконную процедуру, в которой обработать WM_CTLCOLOREDIT, а затем отправить ему это сообщение? Забыл как присваивать оконную процедуру. |
| Автор: 586 20.12.2007, 02:57 | ||
Нет. Обрабатываешь в родительском окне (т.е. в своём). Система посылает сообщение сама. |
| Автор: ZufuS 20.12.2007, 03:37 |
| Закрашиваются все Edit'ы, а мне нужно чтобы они имели разные цвета. |
| Автор: Mihhail 20.12.2007, 19:42 | ||
Сообщение WM_CTLCOLOREDIT в lParam содержит дескриптор создаваемого edit'а , проверяй его и устанавливай для каждого свой цвет.
А что бы выводить текст по центру нужно установить ограничивающий прямоугольник: RECT RcTm1 = {30, 30, 100, 100}; SendMessage( hwndEd, EM_SETRECT, (WPARAM)0, (LPARAM)&RcTm1 ); Здесь отступ слева и сверху 30 пикселей. Но это только для edit'ов со стилем ES_MULTILINE. |