|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.01.2013, 12:07 | #51 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
И поэтому нужен сабклассинг двух окон. И как я представляю, обработка WM_VSCROLL родительского окна будет заключаться просто в вызове InvalidateRect для дочернего. А в дочернем при WM_PAINT надо выяснять текущую позицию скролла родителя через GetScrollBarInfo и в соответствии с этими данными перерисовывать содержимое. Последний раз редактировалось EUGY; 24.01.2013 в 12:10. |
|
25.01.2013, 08:19 | #52 | |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Цитата:
У меня есть: 1. Код:
Form_Form1.hwnd - идентификатор родительского окна. 2. Код:
hwnd - идентификатор родительского окна. newhwnd - идентификатор дочернего окна Последний раз редактировалось fyedor; 25.01.2013 в 08:37. |
|
25.01.2013, 12:49 | #53 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Часто InvalidateRect объявляется так:
Код:
Код:
Код:
|
25.01.2013, 13:25 | #54 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Замечательно!
InvalidateRect отрабатывает почти на ура. Я его использую пока без вызова GetScrollBarInfo в WM_PAINT, поэтому фигура перемещается по форме вместе с прокруткой. Но к сожалению в конце прокрутки она исчезает почему-то и появляется только когда начинаю прокручивать вверх. |
25.01.2013, 13:33 | #55 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Кстати,
метод GetScrollBarInfo hwnd As lond, idObject As Long, psbi As SCROLLBARINFO Второй его параметр idObject - это id на рассматриваемый объект? Или что-то другое. Если да, то откуда его можно достать? |
25.01.2013, 13:40 | #56 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Я уверен, если дисциплинированно подойти к вопросу, то все получится.
Возможно надо сначала позволить начертиться фоновому изображению, а после делать наложение своего рисунка. Или вообще рисовать полностью все в буфере, и потом вывести за раз через BitBlt. Ps. GetScrollBarInfo- полнстью описан в мсдн. Второй параметр это одна из трех констант OBJID_CLIENT OBJID_HSCROLL OBJID_VSCROLL Если ставится первая константа OBJID_CLIENT, то хендл окна в первом параметре должен указывать на окно класса SCROLLBAR Думаю вам надо не ее, а другие две. Хотя что мешает получить хендл непосредственно скролбара. Поставьте утилитку spy++, с ней можно изучить структуру окон и отслеживать обмен сообщений. Последний раз редактировалось EUGY; 25.01.2013 в 13:52. |
25.01.2013, 13:59 | #57 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Да, читал про это.
Пробовал константу OBJID_VSCROLL. Но она не объявлена в вашей библиотеке. И не понятно, какое ей присваивать значение. Написано 0xFFFFFFFB, но не понятно как присваивать такие значения... Разобрался, вот так: Код:
Последний раз редактировалось fyedor; 25.01.2013 в 14:04. |
25.01.2013, 14:04 | #58 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Походу мне было влом..
Код:
|
25.01.2013, 14:37 | #59 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Прописал метод:
Код:
Код:
|
25.01.2013, 14:43 | #60 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Функция хочет знать размер структуры.
SBInfo.cbSize = lenB(SBInfo) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WinApi рисование в VBA | Desha | Помощь студентам | 5 | 05.12.2012 12:32 |
Прозрачность в ie | WennY | HTML и CSS | 1 | 26.08.2012 17:13 |
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) | Артём1991 | Помощь студентам | 0 | 25.03.2012 17:13 |
Прозрачность | digital-stream | Общие вопросы Delphi | 1 | 14.11.2011 21:03 |
Ошибка с SetLength применительно в PChar | Celestia | Общие вопросы Delphi | 7 | 09.04.2011 06:42 |