Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1291900717
oxffff
2010-12-09 16:18
2011.03.27
Обновление языка YAR


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


15-1291973556
12
2010-12-10 12:32
2011.03.27
сломался ctrl+click в IDE. TLabel, ctrl+click на нем, и.. ничего.


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


2-1294043991
black-jack
2011-01-03 11:39
2011.03.27
Http post





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский