社区
网络及通讯开发
帖子详情
求助:关于CppWebBrowser
Hm1ly
2003-09-08 02:10:36
有两个问题现需要解决:
1,如果捕捉CppWebBrowser的OnClick,OnDBClick等标准事件,并用我自已的代码来处理它?
2,我自已写一个PopupMenu,怎么让CppWebBrowser的右键菜单换成我的菜单?
谢谢。
...全文
77
2
打赏
收藏
求助:关于CppWebBrowser
有两个问题现需要解决: 1,如果捕捉CppWebBrowser的OnClick,OnDBClick等标准事件,并用我自已的代码来处理它? 2,我自已写一个PopupMenu,怎么让CppWebBrowser的右键菜单换成我的菜单? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
叶子哟
2003-09-08
打赏
举报
回复
需要加TApplicaitonevent控件
自定义菜单也可以用以上方法,在右键事件中处理,以下为另一种方法:
在.h中声明一下。
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled);
在.cpp中添加以下。
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OleInitialize(NULL);
Application->OnMessage=AppMessage;
}
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
POINT p;
if(IsChild(WB->Handle, Msg.hwnd)&&(Msg.message==WM_RBUTTONDOWN||Msg.message==WM_RBUTTONDBLCLK))
{
GetCursorPos(&p);
PopupMenu1->Popup(p.x,p.y); //弹出自己的右键菜单,或者干脆什么也没有都行。
Handled=True;
}
}
叶子哟
2003-09-08
打赏
举报
回复
void __fastcall TfmMyBroswerMain::ApplicationEvents1Message(
tagMSG &Msg, bool &Handled)
{
static const char *web_browser_classname = "Internet Explorer_Server";
static int classname_len = strlen(web_browser_classname);
static char classname[MAX_PATH];
if(m_IsCloseAllNow)return; // 正在退出,不作处理
if(0 == this->MDIChildCount)return;
// 检查是否本窗口
HWND hParent;
HWND hWnd = GetParent(Msg.hwnd); // Shell DocObject_View
while(hWnd != NULL)
{
hParent = hWnd;
hWnd = GetParent(hParent);
}
if(hParent != Handle)
{
return;
}
TfmChildwin *fBrowser = GetActiveBrowserWindow();
if(fBrowser )
{
if(TabWindow->Handle == Msg.hwnd && WM_LBUTTONDBLCLK == Msg.message)
{
// TabControl控件的双击事件,关闭当前页面
Handled = true;
delete fBrowser;
if(this->MDIChildCount==0)
{
CreateBrowserWindow("about:blank");
}
return;
}
if(GetClassName(Msg.hwnd,classname,MAX_PATH) == classname_len)
{
// 判断是否TCppWebBrowser控件
//还差一个ctrl+Enter的事件无法处理。
if(0 == StrCmp(web_browser_classname,classname) && WM_KEYDOWN == Msg.message)
{
if(Msg.wParam == VK_RETURN)
{
if(!ComboBoxAddress->Focused())
{
fBrowser->SendSubmitToDocument();
Handled = true;
return;
}
}else
if(Msg.wParam == VK_TAB)
{
if(this->MDIChildCount > 1)
{
int CtrlDown=GetKeyState(VK_CONTROL);
CtrlDown=CtrlDown&0x80;
if(CtrlDown)
{
int Indx = TabWindow->TabIndex + 1;
if (Indx >= TabWindow->Tabs->Count)
{
Indx = 0;
}
TabWindow->TabIndex = Indx;
Handled=true;
return;
}
}
}else
if(Msg.wParam == VK_ESCAPE)
{
if(ActionFullScreen->Checked)
{
ActionFullScreen->Checked = false;
SetFullScreen(false);
Handled=true;
return;
}
}else
if((Msg.wParam == 's') || (Msg.wParam == 'S'))
{
int CtrlDown=GetKeyState(VK_CONTROL);
CtrlDown=CtrlDown&0x80;
if(CtrlDown)
{
ActionFileSaveAsExecute(NULL);
Handled=true;
return;
}
}
/*else
if((Msg.wParam == 's') || (Msg.wParam == 'S'))
{
int CtrlDown=GetKeyState(VK_CONTROL);
CtrlDown=CtrlDown&0x80;
if(CtrlDown)
{
ActionFileSaveAsExecute(NULL);
Handled=true;
return;
}
}
*/
}
}
}
}
Jiangsheng的CSDN Digest(March 4, 2006)
由于这方面资料很少,只有
求助
于CSDN上的各位朋友了,谢谢! http://msdn.microsoft.com/library/en-us/dnmapnet30/html/_MWSHeaders.asp 用什么工具能够将 一个COM插件注册(反注册)操作 提取到一个...
Win32 & .Net Q&A 200509
关于vc.net的几个问题。 Q 1、使用vc.net“项目”中.net项中建立的类库能不能使用MFC,如果能使用那么编译后还是不是托管模块?其中引用到的MFC库中类是不是也编译成托管模块 2、使用vc.net“项目”中用MFC建立的应用...
转
由于这方面资料很少,只有
求助
于CSDN上的各位朋友了,谢谢! http://msdn.microsoft.com/library/en-us/dnmapnet30/html/_MWSHeaders.asp 用什么工具能够将 一个COM插件注册(反注册)操作 提取到一个...
VC++中可能遇到的问题
T 关于类似CHM文件的适用于IE的自定义协议的开发 Q 许多软件如chm的帮助可设计自己的协议供ie控件访问本程序提供的页面,如mk:@msitstore:i:/,请哪位提供一些这方面的参考资料(包括msdn中的大致位置) 我觉得用...
VC++中可能遇到的问题收藏
T 关于类似CHM文件的适用于IE的自定义协议的开发 Q 许多软件如chm的帮助可设计自己的协议供ie控件访问本程序提供的页面,如mk:@msitstore:i:/,请哪位提供一些这方面的参考资料(包括msdn中的大致位置) 我觉得用...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章