Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых) |
eXeL@B —› Программирование —› Как перерисовать окно? |
Посл.ответ | Сообщение |
|
Создано: 27 апреля 2006 16:43 · Поправил: nikitosk · Личное сообщение · #1 делаю такое: SetWindowLong(hWnd,GWL_STYLE,style); SetWindowText(hWnd,'some text'); и пока я не сверну и не разверну родительское окно... окна над которыми я проделал данные действия перерисовываются неполностью или вообще не перерисовываются... как его программно обновить ? sendMessage(hWnd,Wm_paint) - не помогает UpdateWindow(hWnd,,) - тоже и RedrawWindow(hWnd,nil,nil,RDW_UPDATENOW); тоже не помогает |
|
Создано: 27 апреля 2006 17:01 · Личное сообщение · #2 |
|
Создано: 27 апреля 2006 17:14 · Поправил: nikitosk · Личное сообщение · #3 все равно не получается... изначально контрол выглядит так: я с ним делаю: SetWindowLong(hWnd,GWL_STYLE,style); SetWindowText(hWnd,TrimFirstSymbol(oldWindowText)); InvalidateRect(hWnd,0,true); я хочу чтоб контрол выглядел так: а после InvalidateRect он выглядит вот так: То есть изображение перерисовывается но поверх старого... Старое не стирается.... почему? |
|
Создано: 27 апреля 2006 17:25 · Личное сообщение · #4 |
|
Создано: 27 апреля 2006 17:26 · Личное сообщение · #5 |
|
Создано: 27 апреля 2006 17:26 · Личное сообщение · #6 в делфях для vcl я так делал: procedure TFlatButton.CreateParams(var Params: TCreateParams);
или перекрывай CreateParams радиобаттона своего или сделай компоненту.. ----- Тут не могла быть ваша реклама |
|
Создано: 27 апреля 2006 17:55 · Личное сообщение · #7 |
|
Создано: 27 апреля 2006 17:59 · Личное сообщение · #8 |
|
Создано: 27 апреля 2006 23:20 · Поправил: nikitosk · Личное сообщение · #9 |
|
Создано: 28 апреля 2006 03:39 · Личное сообщение · #10 |
|
Создано: 28 апреля 2006 04:51 · Личное сообщение · #11 В хелпе пишут, что эта функция служит для инициализации параметров окна и вызывается из CreateWnd для инициализации параметров, передаваемых позже ф-ции CreateWindowHandle. Сам можешь вызывать её, если тебе надо из класса твоего окна убрать параметры CS_HREDRAW и CS_WREDRAW, чтобы перерисовывалась не вся область, а только указанная тобой часть. Типа, так быстрее. |
eXeL@B —› Программирование —› Как перерисовать окно? |