我目前正在为我的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;
}
答案 0 :(得分:2)
你可以随时添加按钮(就像你现在一样),但是当你想看到它时隐藏它/取消隐藏吗?
已编辑添加:
要隐藏按钮,您需要使用ShowWindow()
。这有两种方式:
CButton
,请致电theButton.ShowWindow(SW_HIDE)
ShowWindow(hWndButton, SW_HIDE)
再次编辑:
我找到了您要修改的源代码:forum-assist。
基本上,无论哪个类定义按钮,或者知道如何找到它(可能是RebarHandler.cpp
),都应该添加显示和隐藏按钮的方法。然后你必须从CButtonDemoBHO::Exec()
调用它。
我不能告诉你如何在不分析整个项目的情况下从CButtonDemoBHO
到CRebarHandler
。