Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

Как заменить стандартное меню Internet Explorera на своё   Найти похожие ветки 

 
GreySerg   (2003-08-26 18:03) [0]

Как заменить стандартное меню Internet Explorera на своё
в компоненте TWebBrowser, когда открыт html документ?


 
nikkie   (2003-08-26 18:54) [1]

Компонента TEmbeddedWB
событие OnShowContextMenu
http://www.euromind.com/iedelphi/


 
GreySerg   (2003-08-27 11:22) [2]

а без использования компоненты ? используя стандартную TWebBrowser


 
nikkie   (2003-08-27 14:28) [3]

посмотри как там сделано и сделай также.


 
Тих   (2003-08-28 00:42) [4]

Ну... если поможет :) ...

1) Создать экземпляр Automation Object, реализующий IDispatch и перегружающий метод Invoke. В Invoke проверить DispId метода HTMLDocumentEvents2::oncontextmenu и вызвать свой обработчик.
2) Получить указатель на IHTMLBodyElement из WebBrowser.Document, из body получить IConnectionPointCOntainer, опросить Container на HTMLDocumentEvents2, получить указатель на IConnectionPoint, вызвать IConnectionPoint::Advise, передав в этот метод указатель на экземпляр объекта первого пункта.


 
Rouse_   (2003-08-28 02:31) [5]

Просто подключи к проекту данный юнит:

unit WbPopup;

interface

implementation

uses Windows,Controls,Messages,ShDocVw, Forms, frmMain;

var
HMouseHook:THandle;
Pop: Boolean;

function MouseProc(
nCode: Integer; // hook code
WP: wParam; // message identifier
LP: lParam // mouse coordinates
):Integer;stdcall;
var MHS:TMOUSEHOOKSTRUCT;
WC:TWinControl;
begin
Result:=CallNextHookEx(HMouseHook,nCode,WP,LP);
if nCode=HC_ACTION then
begin
MHS:=PMOUSEHOOKSTRUCT(LP)^;
if ((WP=WM_RBUTTONDOWN) or (WP=WM_RBUTTONUP)) then
begin
WC:=FindVCLWindow(MHS.pt);
if (WC is TWebBrowser) then
begin
Result:=1;
if (TWebBrowser(WC).PopupMenu<>nil) and (WP=WM_RBUTTONUP) then
begin
if Pop then Exit;
Pop := True;
TWebBrowser(WC).PopupMenu.Popup(MHS.pt.x,MHS.pt.y);
Pop := False;
end;
end;
end;
end;
end;

initialization

HMouseHook:=SetWindowsHookEx(WH_MOUSE,@MouseProc,HInstance,GetCurrentT hreadID);

finalization
try
UnhookWindowsHookEx(HMouseHook);
Sleep(100);
CloseHandle(HMouseHook);
except

end;
end.


Код взят уже не помню откуда, модифицирован, так как были явные грубые ошибки, но осталась еще одна, лениво искать (модуль мне всеравно не нужен) при закрытии программы иногда выдает ошибку (на CloseHandle(HMouseHook);), поэтому лучше назначить собственный обработчик ошибок.

Желаю успехов



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
3-74002
Karlson
2003-09-30 17:40
2003.10.23
DBLookupComboBox


1-74217
Aristarh
2003-10-09 17:51
2003.10.23
Создание файла ТХТ в кодировке DOS


14-74455
Tahion2
2003-09-21 08:57
2003.10.23
Посоветойте Label с возможностью выравн. по ширине


3-73984
Максим
2003-10-01 09:27
2003.10.23
DBGridEh


7-74517
Zilog
2003-08-11 12:39
2003.10.23
COM порт:





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский