· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› mdiclient

Посл.отвђт Сообщенiе


Дата: Май 13, 2004 02:00:39

Ресую текст в через WM_PAINT причем с GetTextExtentPoint я делаю чтоб он рисовался по середине но при изминении размеров оно не перерисовывется ,пробывал SendMessage WM_PANIT c глваного к mdiclient'у никакого эффекта.Такоеже рисование в обычном окне работает правильно


Дата: Май 13, 2004 02:33:25

zzzyab
Формулируй вопрос точнее: где рисуешь, на чем рисуешь, чем рисуешь?


Дата: Май 13, 2004 02:49:26

Рисую в окне mdiclient(в его сlient area) TextOut'ом


Дата: Май 13, 2004 04:14:12

А как ты Child создаешь?

To create a child window, an MDI application either calls the CreateMDIWindow function or sends the WM_MDICREATE message to the MDI client window. A more efficient way to create an MDI child window is to call the CreateWindowEx function, specifying the WS_EX_MDICHILD extended style. A thread in an MDI application can use CreateMDIWindow or CreateWindowEx to create a child window in a different thread. The WM_MDICREATE message is used only in the context of the same thread.

To destroy a child window, an MDI application sends a WM_MDIDESTROY message to the MDI client window.


Дата: Май 13, 2004 04:30:50

zzzyab
Сабклась mdiclient'а и обрабатывай WM_PAINT и возможно WM_ERASEBKGND.


Дата: Май 13, 2004 19:01:58

Если я правильно помню - MDICLIENT является родителем для окон документов (MDICHILD). Ничего другого там делать не следует - иначе можно 'найти' нехорошие эффекты от Microsoft. Если что-то необходимо рядом с MDICLIENT - надо просто resize MDICLIENT в ответ на WM_SIZE от окна MDIFRAME. Дополнительный элемент также сделан как child от MDIFRAME. Т. е. в обработке WM_SIZE от MDIFRAME - надо resize оба элемента: MDICLIENT и дополнительный элемент. По такому принципу сделаны, например, Toolbars.


Дата: Май 13, 2004 23:54:03

Да причем тут child я делаю перехват wndproc mdiclient'a
и по WM_PAINT рисую. WM_ERASEBKGND мне не нужно. Но когда посылается емуже WM_PAINT он должен перерисоватся.


Дата: Май 14, 2004 04:12:09

zzzyab
когда посылается емуже WM_PAINT он должен перерисоватся
Не должен.
Понятное объяснение см. Как заставить работать OnPaint()?

AsmGuru62
Ничего другого там делать не следует - иначе можно 'найти' нехорошие эффекты от Microsoft
Приведи пример.
Мне приходилось, и рисовать на нем и размер ему делать меньше чем client area of main window, ничего ему не мешало.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047