StaticText - программно изменить свойство
Такая проблема - в ходе выполнения программы надо сделать свойство обычного StaticText - ModalFrame или ClientEdge c True на false а потом наоборот, с помощю API функций (типо вдавленный текст или как кнопка и пр.).
Текст caption меняется легко - SetDlgItemText(hwndDlg,IDC_STATICT,"мой статик"), а вот как свойства...
hwndDlg - точно моего статика, поскольку caption меняется.
Пробывал SendMessage(hwndDlg,WM_COMMAND,SS_xxxxxx, true/false);
Может не те сообщения и свойства lParam и wParam ставлю, искал в хелпе все смойства StaticText , нахожу какие-то SS_xxxx, EM_xxxx, перепробывал кучу комбинаций, просто устал и ещё не дошёл видимо до нужной комбинации :-((((.
Может вообще не тот подход???
Просто аналогичные задачи были и с другими простыми стандартными объектами а вот такая загвоздка...
Спасибо.
HWND my_stat=GetDlgItem(mainwind,IDC_STATICB);
BOOL recctt=::GetWindowRect(my_stat, &key_rect);
HDC pSource = ::GetDC(my_stat);
BOOL aa=DrawEdge(pSource,&key_rect,EDGE_RAISED,BF_TOPRIGHT);
Команда DrawEdge вроде как раз этим и занимается - изменяет "углы" но выдаёт 1 - типо всё сделано а ничего не меняется, пробывал разные настройки её - тоже никак... а примера тоже не нашёл...
Посмотри SetWindowLong() - скорее всего ты про нее спрашиваешь :)
WS_EX_xxxxxx, пробывал их комбинации, кое-что появляется, но бывает такая комбинация что стиль вообще никак не меняется, или изменится, а потом при переносе окна - когда происходит обновление формы (перересовка) вид опять меняется на непонятно что.
Существуют видимо запрещённые комбинации и приоритетные стили в этих атрибутах, меняеш один, но если при этом стоит ещё какой-то, то эффект не тот что ожидаеш. Видимо таких вариантов очень много. Пытался сначала читать статус окна GetWindowLong, анализировал его с теми атрибутами что стоят в ресурсах, сравнивал биты со свойствами окна SS_xxxxx и WS_EX_xxxxxx - НЕСОВПАДАЮТ. Потому видимо я их ставлю а результат не тот. Как и что тут ещё можно просмотреть и попробывать проверить?
Работает, но почему-то не те параметры ставит, вместо углубления статика появляется белый квадрат, а когда таскаеш форму то белый цвет меняется на цвет закрывающей формы (или формы с другого приложения)..
Просматривал файл ресурсов, там стоит SS_.... и через запятую WS_EX_DIALOGFRAME - выпуклый статик, рядом второй вдавленный у него те-же SS_.. но стоит уже WS_EX_MODALFRAME, логично подумать если я поменяю программно эти свойства наоборот с помощью SetWindowLong то и на форме во время работы проги статики поменяют свой вид на другой, так НЕТ - появляются белые квадраты - ну вообще не втему.... что не так....???