Привет!
Не знаешь ли Ты как програмно изменить стиль елемента управления? Функция CWnd::ModifyStyle() не меняет стиль. Чтобы было понятнее пример. Я создаю стандартный елемент ComboBox. Он выглядет так:
----------------------------------
| |
---------------------------------
| |
| |
| |
| |
----------------------------------
Я хочу сделать его выпадаючим (Смотри панель address на броузере).
Заранее благодарен.
Как програмно изменить стиль елемента управления?
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Проблема-то в чём. Он выпадать не хочет, что ли? 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
-
- Сообщения: 27
- Зарегистрирован: 25 авг 2004, 15:28
- Откуда: Україна, Львів
- Контактная информация:
Ты не понял. Другой пример. CEdit может быть однострочным или иметь многа строк (стиль ES_MULTILINE). Но после того как ты его создал однострочным ты не можешь сделать его многострочным, и наоборот.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Верно, именно стиль ES_MULTILINE нельзя менять после того, как контрол был создан (так гласит вездесущая MSDN), хотя множество остальных стилей можно изменять с помощью хотя бы SetWindowLong.
Выход такой: Edit не располагаем на форме, а создаём динамически с помощью CreateWindow(CreateWindowEx). В тот момент, когда возникает необходимость изменить его статический стиль - просто убиваем этот едит с помощью DestroyWindow и создаём вновь с требуемым стелем. Для пользователя такие манипуляции пройдут незамеченными... А результат налицо
Выход такой: Edit не располагаем на форме, а создаём динамически с помощью CreateWindow(CreateWindowEx). В тот момент, когда возникает необходимость изменить его статический стиль - просто убиваем этот едит с помощью DestroyWindow и создаём вновь с требуемым стелем. Для пользователя такие манипуляции пройдут незамеченными... А результат налицо

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Мдя, за такую мелочь, ТАКОЕ спасибо... аж приятно 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.