在运行时向Internet Explorer工具栏添加按钮

时间:2010-05-11 01:17:41

标签: internet-explorer visual-c++

我目前正在为我的Internet Explorer 7工具栏创建一个简单的附加按钮。按钮有效。我使用的是Visual C ++。

但是现在,我想在我的Internet Explorer运行期间创建一个按钮来创建一个按钮。意味着,在某些条件下,我的程序(使用regsvr32注册的dll)将向工具栏添加一个按钮。在一定条件之后,按钮也会消失。

我怎样才能做到这一点?

更新

我尝试使用这一行:

ShowWindow(hWndButton, SW_HIDE);

它隐藏了我的Internet Explorer浏览器。在任务管理器下,它仍在运行。如何让它只隐藏按钮对象?

编辑:

我想修改此代码..

    STDMETHODIMP CButtonDemoBHO::Exec(const GUID*, DWORD nCmdID, DWORD d, VARIANTARG*, VARIANTARG* pvaOut){
ATLTRACE("CButtonDemoBHO::Exec\n");

switch (nCmdID){
case BUTTON_PRESSED:

MessageBox(m_hWnd, L"You have pressed the button", L"Button Pressed", MB_OK);

    <------- I would like to hide the button here.

    break;
case MENU_ITEM_SELECT:
MessageBox(m_hWnd, L"You have simulated a button press with the menu ", L"Menu Pressed", MB_OK);
    break;
   }
  return S_OK;
 }

1 个答案:

答案 0 :(得分:2)

你可以随时添加按钮(就像你现在一样),但是当你想看到它时隐藏它/取消隐藏吗?

已编辑添加:

要隐藏按钮,您需要使用ShowWindow()。这有两种方式:

  1. 如果按钮是CButton,请致电theButton.ShowWindow(SW_HIDE)
  2. 如果按钮是普通窗口,请致电ShowWindow(hWndButton, SW_HIDE)
  3. 再次编辑:

    我找到了您要修改的源代码:forum-assist

    基本上,无论哪个类定义按钮,或者知道如何找到它(可能是RebarHandler.cpp),都应该添加显示和隐藏按钮的方法。然后你必须从CButtonDemoBHO::Exec()调用它。

    我不能告诉你如何在不分析整个项目的情况下从CButtonDemoBHOCRebarHandler