Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 3
MiheyOo Сообщение 21/11/2010 12:40 Копия темы
WINAPI, GDI Как осуществить рисование в окно вне функции WndProc?

 
Всем привет. Мне нужна небольшая помощь специалиста.

Вот приблизительно код, который занимается рисованием:
{
HDC hdc = GetDC(hWnd);

RECT rect = {0, 0, 0, 0};
GetWindowRect(hWnd, &rect);

MoveWindow(hWnd, rect.left, rect.top, wndWidth + 6, wndHeight + 28, FALSE);

for(;first != afterLast; first++)
{
drawBlock(hdc, x, y, wndWidth, *first);
}

ReleaseDC(hWnd, hdc);
}

внутри WM_PAINT это работает как надо, а я хочу сделать типо visualisator.draw(container.begin(), container.end());, но размер окна не меняется, а рисуется это всё снаружи окна.

Как осуществить рисование в окно вне функции WndProc и сделать так, чтобы при изменении размеров окна содержимое оставалось таким как я нарисовал?
Soft4Commerce Сообщение 21/11/2010 20:27 Копия темы
К сожалению я не знаю C++ (программирую на Delphi), но могу помочь советом.

вполне логично, что для рисования нужна канва
зная Handle канвы можно рисовать, можно рисовать на форме другого приложения или на рабочем столе
но это не выход, так как Windows при обновлении экрана удалит все наши художества,
поэтому делают дополнительную форму большего размера и  помещают ее за основной формой
при перемещении основной формы, перемещается "фоновая" форма

именно так реализована "тень" от окон в Windows.

подобный механизм применяется везде и при формировании всплывающего меню и при формировании выпадающих списков, при формировании всплывающих подсказок и т.д.

т.е. создаете или отдельное окно (без заголовка и границ) или отдельную канву (без формы), делаете ее прозрачной/полупрозрачной и рисуете
MiheyOo Сообщение 22/11/2010 00:25 Копия темы
Моя ошибка. В инициализации не ту ссылку на hWnd передавал, из-за этого получалось GetDc(NULL);
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"