Форум: "Начинающим";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
ВнизPaintBox как в MS Paint (только WinAPI) Найти похожие ветки
← →
ProgRAMmer Dimonych © (2010-12-26 20:23) [0]Стоит задача сделать на чистом WinAPI что-то вроде графического редактора. Область рисования делаю отдельным оконным классом, WS_CHILD. Обработкой WM_NCHITTEST, WM_WINDOWPOSCHANGING и WM_WINDOWPOSCHANGED сделал такие же точки для ресайза на границах окна, как в MS Paint. Работают.
Но при изменении размеров этого "PaintBox"-а происходит постоянная перерисовка. В MS Paint вместо этого рисуется FocusRect, а собственно окно с изменёнными размерами рисуется по окончании ресайза. Соответственно, не мерцает. Перерыл гугл, пробовал использовать разные способы, обрабатывая WM_ENTERSIZEMOVE/WM_EXITSIZEMOVE, убирая из стилей класса CS_HREDRAW и CS_VREDRAW. Ни один из способов не работает.
Есть ли вообще какое-нибудь работающее решение, кроме как временно изменять настройки системы SPI_SETDRAGFULLWINDOWS?
← →
Игорь Шевченко © (2010-12-26 22:38) [1]
> Есть ли вообще какое-нибудь работающее решение
MS Paint работает ? Значит есть
← →
ProgRAMmer Dimonych © (2010-12-26 23:29) [2]> [1] Игорь Шевченко © (26.12.10 22:38)
> MS Paint работает ? Значит есть
Вот, собственно, и хотелось бы поинтересоваться, насколько объёмным будет это решение. Ну и опять же - не изобретать велосипед, а взять готовые чертежи, т.е. информация о том, с чего начать и с какой стороны подступиться :)
← →
KilkennyCat © (2010-12-26 23:32) [3]Не объемное. Я давно как-то с похожей проблемой столкнулся, причем как раз Игорь Шевченко что-то путное посоветовал, но что? не помню...
← →
clickmaker © (2010-12-27 13:27) [4]> Область рисования делаю отдельным оконным классом
нафига? можно же растровой операцией xor воспользоваться. Собственно, так и работают все графические редакторы, MS Paint в том числе
← →
Дмитрий С © (2010-12-27 17:15) [5]пэйнт, кстати, может работать как ole сервер (или типа того).
← →
ProgRAMmer Dimonych © (2010-12-28 03:14) [6]> [4] clickmaker © (27.12.10 13:27)
> > Область рисования делаю отдельным оконным классом
>
> нафига? можно же растровой операцией xor воспользоваться.
> Собственно, так и работают все графические редакторы, MS
> Paint в том числе
По условию задачи там предполагается использование метафайлов и кой-каких свистелок по мелочи. Поэтому удобно обернуть это всё в отдельный класс: оконный и Delphi-йский. Такие велосипеды :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c