|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
OnClick по картинке в RichEdit
Вставил в RichEdit картинки с помощью модуля re_bmp. Как отследить событие нажания мыши по рисункам? Отмечу, что сейчас при клике эти рисунки выделяются (рамочка появляется). Я понимаю, что вероятнее всего это необходимо делать в обработчике OnClick самого RichEdit-a, но как понять, что под курсором именно картинка? Пробовал анализировать содержимое по RichEdit1MouseMove с помощью Perform, но удалось лишь выцепить номер строки и номер символа. А как узнать, что там именно картинка?
Вот немного раскапал. Пока удалось раздобыть количество картинок в RichEdite, но как определить, который из них кликнут мышью? Вот код: Код:
type TReobject = record cbStruct: DWORD; cp: ULONG; clsid: TCLSID; poleobj: IOleObject; pstg: IStorage; polesite: IOleClientSite; sizel: TSize; dvAspect: Longint; dwFlags: DWORD; dwUser: DWORD; end; ... Function ItBmp(hWnd:HWND) :integer; var IREO:IRichEditOle; ReObject:TReObject; Count:Integer; Position:LongInt; begin Count:=0; // получить IrichEditOle интерфейс SendMessage(hWnd, EM_GETOLEINTERFACE, 0, Longint(@IREO)); Count:=IREO.GetObjectCount; // число оле объектов в т.ч. картинок ZeroMemory(@ReObject,SizeOf(ReObject)); ReObject.cbStruct := SizeOf(ReObject); if Succeeded(IREO.GetObject(0, ReObject, $00000001)) then // если удается получить первый объект begin Result:=Count; IREO.???? end; end; Какой метод применить, чтобы узнать, выделен ли он, или находится ли над ним курсор мыши? Или как получить координаты этого рисунка из его свойств (струкруты TReObject)? Последний раз редактировалось pavelkq, 04.01.2009 в 23:12. |