Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
15-1291966167
И. Павел
2010-12-10 10:29
2011.03.27
Разграничение разработки и установки


2-1293796610
tippa
2010-12-31 14:56
2011.03.27
входит ли строка в поток?


15-1292196119
semjuel
2010-12-13 02:21
2011.03.27
Нужен компонент.....


15-1291835265
И. Павел
2010-12-08 22:07
2011.03.27
Везде халтура :)


11-1232893517
Лотос
2009-01-25 17:25
2011.03.27
Ошибка типов для Bitmap




   Наверх