|
|
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Честно признаюсь, что к решению описанных ниже проблем еще реально не приступал - пока только теоретически готовлюсь, учу матчасть, так сказать. Помогите пожалуйста, чтобы путь мой, тернистый (правда, иногда и поросли малины попадаются:) не был в ненужную мне сторону. Спасибо заранее... 1) Есть ряд окон, которые мне необходимо посадить на сабклассинг. Посадить одно окно - не проблема: получаем адрес оконной процедуры, меняем на свой, обрабатываем сообщения, вызываем стандартную процедуру. Но вот ситуация усложняется: надо субклассировать два, три, море окон, при этом для каждого окна должно выполняться действие, необходимое к выполнению именно в данном конкретном окне. Т.е. есть набор иконок, которые есть необходимость рисовать напрямую (это из второго вопроса данного топика) в клиентской части окна, при этом для каждого окна необходимо рисовать какую-то свою иконку. Первое, что пришло на ум это создать две, три, море оконных процедур, к которым подключать открываемые окна. Но, естественно, должно существовать менее глупое решение. Что-то связанное с классами... Но как это "что-то" прикрутить фактически к окнам, с использованием API и средствами C++ (а именно так стоит вопрос, хотя акромя элементарных языковых конструкций Сей я ничего не знаю, к шожалению) - для меня загадка. Помогите отгадать, пожалуйста... И вопрос №2, который не совсем в тему форума, но здесь ведь есть модератор, если что? ;) 2) Есть необходимость рисовать в окнах, мною не созданных (ну, или, вернее, не совсем мною созданных - формы VBA в офисных приложениях, которые создал я), графические элементы - иконки, там, всякие... Делать это нужно в клиентской области окна по окончании его стандартной прорисовки, т.е. чтобы отображаемые мной "картинки" в любом случае перекрывали бы все то, что было рисовано "настоящим" окном. Делать это собираюсь через сабклассинг (вопрос №1), при этом иконки в каком-то виде (в каком?) лежат в спроецированном файле и каким-то образом (получение совместимого контекста или контекста непосредственно окна?) "рисует" валяющуюся в файле иконку на окно, да так, чтобы существовали "прозрачные" пикселы (как их задать в иконке и каким методом скопировать в контекст?). А еще бы возможность "засерения"... хм... ну, когда кнопка становится недоступной, она "засерается"... "засереется"... ну вообщем, становится серенькой... Так вот, как бы не хранить еще и такую вот иконку, а получать ее при копировании в контекст устройства? Знаю, написал много, но читать тоже умею, поэтому, если можете, ответьте ламеру или пошлите куда-нить... Где почитать на эти темы можно... Помогите кто чем Бог простит. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2005, 21:18 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
1) Не понял, такая простая мысль, как хранить в каждом конкретном окне конкретную иконку и ее рисовать не пришла в твою голову ? При этом класс один, универсальный, процедура оконная одна, иконки разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 00:02 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
СЛамер И вопрос №2, который не совсем в тему форума, но здесь ведь есть модератор, если что? ;) Нет здесь модератора ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 00:03 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
СЛамер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 реализован, причем заведомо ПРАВИЛЬНО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 00:12 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
MasterZiv1) Не понял, такая простая мысль, как хранить в каждом конкретном окне конкретную иконку и ее рисовать не пришла в твою голову ? При этом класс один, универсальный, процедура оконная одна, иконки разные.Не могу я хранить в каждом конкретном окне иконки, т.к. иконки уже хранятся в файле, который спроецирован на процесс. Смысл всего затеянного как раз в том, чтобы иконки, хранящиеся в этом самом файле, посредством C++ DLL рисовать (именно просто рисовать, отображать на VBA-форме) по указке VBA-кода. Т.е. VBA-код вызывает из C++ DLL функцию Код: plaintext ... вообще, вопросов в контексте топика очень много и вариантов решения еще больше (от незнания), поэтому, дабы не мучал тут никого (тем более при отсутствии модераторов:) глупыми вопросами, одназначно указывающими на мою неготовность решать подобного рода задачи, дайте ссылочки по поднятой мной теме, а то только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже читать не решился... Еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 01:57 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
Либо сссссылками не богаты, либо текста многовато... Ну и на том ссстою... :) в смысле спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 19:26 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
автортолько по одному "WM_PAINT" гугл мне столько нафигачил, что я даже читать не решился... а зря, без этого не выйдет рисования в С++ ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:57 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
Petro123 wrote: > автор > только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже > а зря, без этого не выйдет рисования в С++ а какая связь между с++ и wm_paint? вполне можно без wm_paint рисовать в с++ :-) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 11:02 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
alex_k Petro123 wrote: > автор > только по одному "WM_PAINT" гугл мне столько нафигачил, что я даже > а зря, без этого не выйдет рисования в С++ а какая связь между с++ и wm_paint? вполне можно без wm_paint рисовать в с++ :-) Posted via ActualForum NNTP Server 1.2 у него задача достаточно "извращённая" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 11:18 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
Petro123 alex_k Petro123 wrote: > а зря, без этого не выйдет рисования в С++ а какая связь между с++ и wm_paint? вполне можно без wm_paint рисовать в с++ :-) у него задача достаточно "извращённая" Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 19:18 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
>Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое. Это при том, что мне это надо сделать именно в этой среде разработки. Вот я и спрашивал возможные ссылки на возможные примеры реализации данной задачи средствами C++. Ну да уже начал разбираться самостоятельно (в смысле без примеров кода) и пока все идет именно так, как и должно было (можно я не буду говорить как именно?:) Спасибо всем откликнувшимся. Тему можно считать закрытой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2005, 00:29 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
White Owl Petro123 alex_k Petro123 wrote: > а зря, без этого не выйдет рисования в С++ а какая связь между с++ и wm_paint? вполне можно без wm_paint рисовать в с++ :-) у него задача достаточно "извращённая" Так а при чем здесь С++? :) Вот WM_PAINT - ключевое слово, а каким инструментом с этим сообщением будут работать - дело десятое. IMHO если ездишь на Ferrari то не надо ездить на 1 передаче. События OS именно в С++ и надо изучать. Иначе другой язык надо выбирать (таблицы можно и в Word'e делать, но....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2005, 15:47 |
|
||
|
1) Класс субклассирования окон? 2) Рисование в чужом окне?
|
|||
|---|---|---|---|
|
#18+
Petro123События OS именно в С++ и надо изучать. Иначе другой язык надо выбирать (таблицы можно и в Word'e делать, но....) А я вот понять никак не могу: Что общего между событиями ОС и конкретным языком? Тем более что предлагаемый язык как раз стремится абстрагироваться от событий ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2005, 18:05 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=57&tid=2033062]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 333ms |

| 0 / 0 |
