powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / 1) Класс субклассирования окон? 2) Рисование в чужом окне?
14 сообщений из 14, страница 1 из 1
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33147019
СЛамер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Честно признаюсь, что к решению описанных ниже проблем еще реально не приступал - пока только теоретически готовлюсь, учу матчасть, так сказать. Помогите пожалуйста, чтобы путь мой, тернистый (правда, иногда и поросли малины попадаются:) не был в ненужную мне сторону. Спасибо заранее...

1) Есть ряд окон, которые мне необходимо посадить на сабклассинг. Посадить одно окно - не проблема: получаем адрес оконной процедуры, меняем на свой, обрабатываем сообщения, вызываем стандартную процедуру.
Но вот ситуация усложняется: надо субклассировать два, три, море окон, при этом для каждого окна должно выполняться действие, необходимое к выполнению именно в данном конкретном окне. Т.е. есть набор иконок, которые есть необходимость рисовать напрямую (это из второго вопроса данного топика) в клиентской части окна, при этом для каждого окна необходимо рисовать какую-то свою иконку.
Первое, что пришло на ум это создать две, три, море оконных процедур, к которым подключать открываемые окна. Но, естественно, должно существовать менее глупое решение. Что-то связанное с классами... Но как это "что-то" прикрутить фактически к окнам, с использованием API и средствами C++ (а именно так стоит вопрос, хотя акромя элементарных языковых конструкций Сей я ничего не знаю, к шожалению) - для меня загадка. Помогите отгадать, пожалуйста...

И вопрос №2, который не совсем в тему форума, но здесь ведь есть модератор, если что? ;)
2) Есть необходимость рисовать в окнах, мною не созданных (ну, или, вернее, не совсем мною созданных - формы VBA в офисных приложениях, которые создал я), графические элементы - иконки, там, всякие... Делать это нужно в клиентской области окна по окончании его стандартной прорисовки, т.е. чтобы отображаемые мной "картинки" в любом случае перекрывали бы все то, что было рисовано "настоящим" окном.
Делать это собираюсь через сабклассинг (вопрос №1), при этом иконки в каком-то виде (в каком?) лежат в спроецированном файле и каким-то образом (получение совместимого контекста или контекста непосредственно окна?) "рисует" валяющуюся в файле иконку на окно, да так, чтобы существовали "прозрачные" пикселы (как их задать в иконке и каким методом скопировать в контекст?). А еще бы возможность "засерения"... хм... ну, когда кнопка становится недоступной, она "засерается"... "засереется"... ну вообщем, становится серенькой... Так вот, как бы не хранить еще и такую вот иконку, а получать ее при копировании в контекст устройства?

Знаю, написал много, но читать тоже умею, поэтому, если можете, ответьте ламеру или пошлите куда-нить... Где почитать на эти темы можно...

Помогите кто чем Бог простит.
Спасибо.
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33147096
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Не понял, такая простая мысль, как хранить в каждом конкретном окне конкретную иконку и ее рисовать не пришла в твою голову ? При этом класс один, универсальный, процедура оконная одна, иконки разные.
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33147097
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЛамер
И вопрос №2, который не совсем в тему форума, но здесь ведь есть модератор, если что? ;)

Нет здесь модератора !
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33147099
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЛамер2) Есть необходимость рисовать в окнах, мною не созданных (ну, или, вернее, не совсем мною созданных - формы VBA в офисных приложениях, которые создал я), графические элементы - иконки, там, всякие... Делать это нужно в клиентской области окна по окончании его стандартной прорисовки,

Нет. Во время его стандартной прорисовки. По окончании ты скорее всего ничего не прорисуешь. Т.е. прорисовка (WM_PAINT) должна быть одна, как это сделать - дело твое, от создания ActiveX-а, от которого будет унаследован класс в VB до экспорта в VB конкретно одной функции прорисовки (обработчика WM_PAINT)

СЛамер
т.е. чтобы отображаемые мной "картинки" в любом случае перекрывали бы все то, что было рисовано "настоящим" окном.
Делать это собираюсь через сабклассинг (вопрос №1), при этом иконки в каком-то виде (в каком?) лежат в спроецированном файле и каким-то образом (получение совместимого контекста или контекста непосредственно окна?)

контекста WM_PAINT,
HDC BeginPaint(
HWND hwnd, // handle to window
LPPAINTSTRUCT lpPaint // paint information
);

На счет subclassing - лучше не мудрить самому, а использовать MFC или ATL или WTL, там subclassing реализован, причем заведомо ПРАВИЛЬНО.
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33147118
СЛамер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv1) Не понял, такая простая мысль, как хранить в каждом конкретном окне конкретную иконку и ее рисовать не пришла в твою голову ? При этом класс один, универсальный, процедура оконная одна, иконки разные.Не могу я хранить в каждом конкретном окне иконки, т.к. иконки уже хранятся в файле, который спроецирован на процесс. Смысл всего затеянного как раз в том, чтобы иконки, хранящиеся в этом самом файле, посредством C++ DLL рисовать (именно просто рисовать, отображать на VBA-форме) по указке VBA-кода.
Т.е. VBA-код вызывает из C++ DLL функцию
Код: plaintext
СкажиМне_hWnd_и_ИндексИконкиИЯТебеЕеБудуРисовать(...)
MasterZivНа счет subclassing - лучше не мудрить самому, а использовать MFC или ATL или WTL, там subclassing реализован, причем заведомо ПРАВИЛЬНО.К сожалению, все эти страшные аббривиатуры для меня не более чем аббривиатуры :( И получается, что чтобы добраться из пункта А в пункт Б НЕ пешком, мне надо либо из того что есть (общая практика программирования + основные языковые конструкции Сей) собрать ласипет, либо выбрать ИЛ-96 или БОИНГ-347 или СУ-37 (что само по себе не простая задача), и освоить один из них. Я конечно понимаю, что лучше день потерять, а потом за пять минут долететь, но ласипет для меня в данной ситуации ближе - мне легче бу... впрочем, прекрасно понимаю, что все аргументы за использование стандартных библиотек, но если дело обстоит как "изучи MFC или ATL или WTL", то для меня это полнейший верняк не сделать ничего... Опять же к шожалению :(

... вообще, вопросов в контексте топика очень много и вариантов решения еще больше (от незнания), поэтому, дабы не мучал тут никого (тем более при отсутствии модераторов:) глупыми вопросами, одназначно указывающими на мою неготовность решать подобного рода задачи, дайте ссылочки по поднятой мной теме, а то только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже читать не решился...
Еще раз спасибо!
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33151095
СЛамер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо сссссылками не богаты, либо текста многовато... Ну и на том ссстою... :)
в смысле спасибо...
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33151655
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортолько по одному "WM_PAINT" гугл мне столько нафигачил, что я даже читать не решился...
а зря, без этого не выйдет рисования в С++
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33151666
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 wrote:
> автор
> только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже
> а зря, без этого не выйдет рисования в С++

а какая связь между с++ и wm_paint?
вполне можно без wm_paint рисовать в с++ :-)
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33151703
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_k
Petro123 wrote:
> автор
> только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже
> а зря, без этого не выйдет рисования в С++

а какая связь между с++ и wm_paint?
вполне можно без wm_paint рисовать в с++ :-)
Posted via ActualForum NNTP Server 1.2
у него задача достаточно "извращённая"
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33153168
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 alex_k
Petro123 wrote:
> а зря, без этого не выйдет рисования в С++
а какая связь между с++ и wm_paint?
вполне можно без wm_paint рисовать в с++ :-)
у него задача достаточно "извращённая"
Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое.
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33153368
СЛамер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое.

Это при том, что мне это надо сделать именно в этой среде разработки. Вот я и спрашивал возможные ссылки на возможные примеры реализации данной задачи средствами C++.
Ну да уже начал разбираться самостоятельно (в смысле без примеров кода) и пока все идет именно так, как и должно было (можно я не буду говорить как именно?:)
Спасибо всем откликнувшимся. Тему можно считать закрытой...
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33155023
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Petro123 alex_k
Petro123 wrote:
> а зря, без этого не выйдет рисования в С++
а какая связь между с++ и wm_paint?
вполне можно без wm_paint рисовать в с++ :-)
у него задача достаточно "извращённая"
Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое.
IMHO если ездишь на Ferrari то не надо ездить на 1 передаче. События OS именно в С++ и надо изучать. Иначе другой язык надо выбирать (таблицы можно и в Word'e делать, но....)
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33155512
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123События OS именно в С++ и надо изучать. Иначе другой язык надо выбирать (таблицы можно и в Word'e делать, но....)
А я вот понять никак не могу: Что общего между событиями ОС и конкретным языком? Тем более что предлагаемый язык как раз стремится абстрагироваться от событий ОС.
...
Рейтинг: 0 / 0
1) Класс субклассирования окон? 2) Рисование в чужом окне?
    #33155869
VNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорей не между языком и событиями ОС, а между платформой ( Win32) и событиями.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / 1) Класс субклассирования окон? 2) Рисование в чужом окне?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]