> все равно не работает.. Некоторые стили не могут меняться на лету при помощи сообщений. Нужно удалить кнопку и пересоздать ее с новым стилем. Ну или пользоваться GetWindowLong/SetWindowLong. Этот пример работает - я специально проверил (только стиль обновляется как-то странно - но это уже другой вопрос)
Вопрос глупый, но как установить свойство контрола (используя WinAPI)? К примеру TRUE или FALSE у свойства Flat Button'a. как в делфи button1.flat:= true;
Смотрел исходники, там вроде для этого спользуется SendDlgItemMessage(), но не понятно какое именно сообщение нужно посылать для изменения того или иного св-ва..
Bm_setstyle28.01.03 12:09 Автор: amirul <Serge> Статус: The Elderman
> Вопрос глупый, но как установить свойство контрола > (используя WinAPI)? К примеру TRUE или FALSE у свойства > Flat Button'a. как в делфи button1.flat:= true; > Смотрел исходники, там вроде для этого спользуется > SendDlgItemMessage(), но не понятно какое именно сообщение > нужно посылать для изменения того или иного св-ва.. А вообще по свойствам контролов поглянь widowsx.h, в частности Button_Xxx макросы. Есть там и Button_SetStyle. Вот только одного не пойму: почему они в MSDN-е не задокументированы.
Кроме того, если юзаешь MFC - некоторым нравится. Там есть функция CButton::SetButtonStyle
И еще кроме того есть SetWindowLong
Bm_setstyle29.01.03 08:21 Автор: makeworld Статус: Member
Попробовал двумя способами:
SendMessage(GetDlgItem(hDlg,ID_CLOSE),BM_SETSTYLE,BS_FLAT,TRUE);
и
Button_SetStyle(GetDlgItem(hDlg,ID_CLOSE),BS_FLAT,TRUE);
все равно не работает..
Да я тоже попробовал - болт29.01.03 16:06 Автор: amirul <Serge> Статус: The Elderman
> все равно не работает.. Некоторые стили не могут меняться на лету при помощи сообщений. Нужно удалить кнопку и пересоздать ее с новым стилем. Ну или пользоваться GetWindowLong/SetWindowLong. Этот пример работает - я специально проверил (только стиль обновляется как-то странно - но это уже другой вопрос)
> > все равно не работает.. > Некоторые стили не могут меняться на лету при помощи > сообщений. Нужно удалить кнопку и пересоздать ее с новым > стилем. Ну или пользоваться GetWindowLong/SetWindowLong. > Этот пример работает - я специально проверил (только стиль > обновляется как-то странно - но это уже другой вопрос) >
После изменения стиля с помощью SetWindowLong() кнопка не перерисовывается автоматически. По идее должно быть сообщение для обновления окна, но я ничего не нашел и сделал так: