Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: 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 вся ветка

Текущий архив: 2011.03.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
6-1217761959
Ruzzz
2008-08-03 15:12
2011.03.27
Добавление в программу  «Работа через proxy - сервер»


15-1292327670
12
2010-12-14 14:54
2011.03.27
именование объектов в ORACLE в БД


3-1255705719
IOrist
2009-10-16 19:08
2011.03.27
Как отобразить поля в гриде без гемора?


1-1250522877
Дмитрий Белькевич
2009-08-17 19:27
2011.03.27
Хэлп по поводу хэлперов


2-1293272162
tanyusha333
2010-12-25 13:16
2011.03.27
Не могу решить задачу по системному программированию!