Изменение стиля в ListBox'е
От: Saruman Россия none
Дата: 29.08.02 02:33
Оценка:
Проблемка встала интересная... Как в VC++ во время выполнения сменить вид селекции в листбоксе?
Есть объект CListBox, есть окно к которому он привязан, и оно созданнно со свойством Single-Selection. А надо во время работы программы сменить его на Multiple-Selection. Как это сделать ума не приложу... И окну свойства менял, и производный от CListBox объект создавал в котором перегружал функцию Create и PreCreateWindow... — Не хочет работать! Может кто знает как это сделать в VC++, а то в C++ Builder'е илиDelphi все прекрасно работает...
Типа того что как бы...
Re: Изменение стиля в ListBox'е
От: Андрей Россия  
Дата: 29.08.02 02:42
Оценка:
Здравствуйте Saruman, Вы писали:

S>Проблемка встала интересная... Как в VC++ во время выполнения сменить вид селекции в листбоксе?


skip

Только убив и создав его заново с новыми стилями. C++ Builder и Delphi, кстати, так и делают.
Re[2]: Изменение стиля в ListBox'е
От: Saruman Россия none
Дата: 29.08.02 02:47
Оценка:
А>Только убив и создав его заново с новыми стилями. C++ Builder и Delphi, кстати, так и делают.

Тогда как можно убить объект, если свойства его я задавал в ClassWizard'е и он автоматически создавался...
Типа того что как бы...
Re[3]: Изменение стиля в ListBox'е
От: Андрей Россия  
Дата: 29.08.02 03:02
Оценка:
Здравствуйте Saruman, Вы писали:

А>>Только убив и создав его заново с новыми стилями. C++ Builder и Delphi, кстати, так и делают.


S>Тогда как можно убить объект, если свойства его я задавал в ClassWizard'е и он автоматически создавался...


Что значит автоматически?
ClassWizard тебе сделал какую-то переменную в твоем диалоге, что-то типа:

class CMyDialog : public CDialog
{
  // . . .

  CListBox m_wndList;

  // . . .
};


теперь там, где надо поменять стиль, нужно сделать что-то вроде следующего:

  m_wndList.DestroyWindow();
  m_wndList.Create(...);   // здесь нужные тебе стили


а дальше нужно смотреть на месте, может быть, еще что-то надо сделать в дополнение к этому — это только общий принцип.
В любом случае, одной-двумя строчками не обойдешься


Кстати, а ModifyStyle(0, LBS_MULTIPLESEL) ты не пробовал вызывать? Может, поможет. Тогда все, что было выше написано, делать не нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.