我用在dll里做了两个IE插件,一个是工具条,一个是侧边栏.现在我可以在工具条上通过ShowBrowserBar启动侧边栏,但是我不知道如何才能在工具条上得到侧边栏的句柄或者对象指针或者它的IWebBrowser2指针.我的最终目的是得到IWebBrowser2指针,因为我想通过工具条在侧边栏上访问网页,各味大虾有何办法.
解决方案 »
- 如何使用installshied制作:X64orX32位的机子安装不同文件的包??
- 无法获得媒体长度,请大家帮帮忙
- 为什么我包含winsock2.h会出现错误呢?
- windows消息机制基础问题
- 还是 :error LNK2001: 无法解析的外部符号
- 为什么我的键盘钩子时灵时不灵?我在DllMain中安装的钩子.....请看里面代码
- 怎么才能清空客户区??
- 有用过directshow的吗?
- 请问怎么避免“redefine class "这样的错误
- mouse_event(MOUSEEVENTF_MOVE,X,Y,0,GetMessageExtraInfo());
- 关于google工具条
- 怎么没有消息响应?
不过我还有个问题,怎么才能让侧边栏(也就是浏览器栏)响应退格键呀?
以下是我的建立浏览器栏窗口的函数
BOOL CKGVBarBand::CreateCustomWindow()
{
ATLASSERT( m_hwndParent );
ATLASSERT( NULL == m_hWnd ); RECT rc;
::GetClientRect( m_hwndParent, &rc ); Create( m_hwndParent, rc, NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_HSCROLL);
// 在浏览器栏上建立子窗口
if( m_hWnd )
{
CAxWindow axWin( m_hWnd ); // 在子窗口上建立浏览器控件窗口
USES_CONVERSION;
axWin.CreateControl(T2OLE(g_Strurl.GetBuffer(0)), NULL, NULL); // 并初始化浏览资源中的一个网页
axWin.QueryControl(__uuidof(IWebBrowser2), (void**)&_pWebBrowser);
}
return ( NULL != m_hWnd);
}以下是IInputObject接口的实现
STDMETHODIMP CKGVBarBand::UIActivateIO(BOOL fActivate, LPMSG pMsg)
{
if(fActivate)
::SetFocus(m_hWnd);
return S_OK;
}STDMETHODIMP CKGVBarBand::HasFocusIO(void)
{
if(::GetFocus() == m_hWnd)
return S_OK;
return S_FALSE;
}STDMETHODIMP CKGVBarBand::TranslateAcceleratorIO(LPMSG pMsg)
{
USES_CONVERSION;
int nVirtKey = (int)(pMsg->wParam);
if ((WM_KEYUP == pMsg->message || WM_KEYDOWN == pMsg->message) &&
VK_BACK == nVirtKey || (VK_END <= nVirtKey && VK_DOWN >= nVirtKey) ||
VK_DELETE == nVirtKey)
{
TranslateMessage(pMsg);
DispatchMessage(pMsg);
return S_OK;
}
return S_FALSE;
}
哪里有问题呀?