问题:在使用X64的CDR类型库编译时,能够成功创建自定义的工具栏和图标,但是产生的图标是灰色不可点击的状态。
代码如下:
STDMETHODIMP HelloWorldPlugin::raw_StartSession() {
try {
m_lCookie = corelApp->AdviseEvents(this);
auto ctl = corelApp->CommandBars->Item[bstr_t("插件")];//定义读取名字为"插件"的工具栏,首次启动因为不存在这个工具栏而抛出异常
corelApp->AddPluginCommand(bstr_t("图标1"), bstr_t("一键条幅"), bstr_t("一键制作条幅插件"));//关联插件
corelApp->AddPluginCommand(bstr_t("图标2"), bstr_t("按钮2"), bstr_t("我是第二个按钮"));//关联插件
}
catch (_com_error& e) {
//MessageBox(NULL, e.Description(), _bstr_t("raw_StartSession 出错了"), MB_ICONSTOP);
auto ctl = corelApp->CommandBars->Add(bstr_t("插件"), (VGCore::cuiBarPosition)4, false);//没有工具栏,就添加一个
ctl->Visible = true;//设置工具栏可见
auto bt = ctl->Controls->AddCustomButton(VGCore::cdrCmdCategoryPlugins, bstr_t("图标1"), 0, false);//在工具栏里添加按钮
auto bt2 = ctl->Controls->AddCustomButton(VGCore::cdrCmdCategoryPlugins, bstr_t("图标2"), 0, false);//在工具栏里添加第二个按钮
_bstr_t bstrPath(corelApp->Path + _bstr_t("Plugins64\\make-banner.ico"));
bt->SetIcon2(bstrPath);
bt->Visible = true;//设置工具栏里的按钮可见
_bstr_t bstrPath2(corelApp->Path + _bstr_t("Plugins64\\bt2.ico"));
bt2->SetIcon2(bstrPath2);
bt2->Visible = true;//设置工具栏里的按钮可见
corelApp->AddPluginCommand(bstr_t("图标1"), bstr_t("一键条幅"), bstr_t("一键制作条幅插件"));//关联插件
corelApp->AddPluginCommand(bstr_t("图标2"), bstr_t("图标名称2"), bstr_t("我是第二个按钮"));//关联插件
}
return S_OK;
}
可以参考下图,图标是灰色的,始终是被禁用的状态,无法点击。
请教C++高手,这种情况如何解决?
也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
请问题主这个问题解决了嘛?我也遇到了这个问题