返回首页

{S0}简介
VSL的附加组件:VSL(VISIO库)首次使用Visio 2.0中可用。事实上,许多的出盒Visio解决方案,如组织结构图,作为VSL的附加实施。您创建VSL的附加组件使用C或C。本Visio解决方案"选项的重点是纯粹的速度。记住,Visio的SDK的需要来安装使用。使用代码程序创建一个应用
使用Microsoft Visual 2005年编辑器创建一个新项目。导航到其他语言和选择的Visual C。这将显示许多选项,Visio中添加或添加上,并选择它。提供项目名称,像quot; VisioProject1.quot;弹出Microsoft Visio中新增的或附加向导。单击"下一步"按钮,选择"quot;创建一个Visio VSL的添加,使用MFC,"ATL没有C,单击"下一步",选择"quot;导入Visio类型库的,"并单击"下一步"完成向导。向导生成的示例代码。在运行时添加,消息框将显示的信息,"VisioProject1添加由Visio 2007 SDK Add-in/Add-on向导VisioProject1.quot MessageBox的代码注释掉,并添加下面的源代码来实现自定义菜单,工具栏和处理的MenuItem,ToolbarItem功能。生成项目。在Debug文件夹中生成的VisioProject1.vsl二进制文件。

//Common

BSTR bstrAddOnName = SysAllocString(L"VisioProject1U"); 

BSTR bstrTitle = SysAllocString(L"&Sample"); 

BSTR bstrItem = SysAllocString(L"Item");



//Menu: Visio::IVUIObjectPtr uiObjPtr; 

Visio::IVMenuSetsPtr menuSetsPtr; 

Visio::IVMenuSetPtr menuSetPtr; 

Visio::IVMenusPtr menusPtr; 

Visio::IVMenuPtr menuPtr; 

Visio::IVMenuItemsPtr menuItemsPtr; 

Visio::IVMenuItemPtr menuItemPtr;



hr = m_app->get_BuiltInMenus(&uiObjPtr); 

hr = uiObjPtr->get_MenuSets(&menuSetsPtr); 

//long itemId = Visio::VisUIObjSets::visUIObjSetDrawing; 

hr = menuSetsPtr->get_ItemAtID(2, &menuSetPtr); 

hr = menuSetPtr->get_Menus(&menusPtr); //add a new menu 

menuPtr = menusPtr->AddAt(7); 

hr = menuPtr->put_Caption(bstrTitle); 

hr = menuPtr->get_MenuItems(&menuItemsPtr); 

//MenuItem1 menuItemPtr = menuItemsPtr->Add(); 

hr = menuItemPtr->put_Caption(bstrItem); 

menuItemPtr->put_AddOnName(bstrAddOnName); 

//Add-on name 

menuItemPtr->put_ActionText(bstrItem); 

menuItemPtr->put_MiniHelp(bstrItem); 

menuItemPtr->put_AddOnArgs(bstrItem); 

m_app->SetCustomMenus(uiObjPtr); //Add the Menu to the Application



//Toolbar



Visio::IVUIObjectPtr uiToolbarPtr; 

Visio::IVToolbarSetPtr toolbarSetPtr; 

Visio::IVToolbarPtr toolbarPtr; 

Visio::IVToolbarItemsPtr toolbarItemsPtr; 

Visio::IVToolbarItemPtr toolbarItemPtr;



// get build in toolbars 

hr = m_app->get_BuiltInToolbars(0, &uiToolbarPtr); 

hr = uiToolbarPtr->ToolbarSets->get_ItemAtID(2, &toolbarSetPtr); //add a new toolbar 

toolbarPtr = toolbarSetPtr->Toolbars->Add(); 

toolbarPtr->put_Caption(bstrTitle); 

//toolbarPtr->put_Position((short)Visio::VisUIBarPosition::visBarMenu); 

toolbarPtr->put_Position(6); 

hr = toolbarPtr->get_ToolbarItems(&toolbarItemsPtr); 

//ToolbarItem1 

toolbarItemPtr = toolbarItemsPtr->Add(); 

toolbarItemPtr->put_Caption(bstrItem); 

toolbarItemPtr->put_AddOnName(bstrAddOnName); 

//Add-on Name toolbarItemPtr->put_ActionText(bstrItem); 

toolbarItemPtr->put_MiniHelp(bstrItem); 

toolbarItemPtr->put_AddOnArgs(bstrItem); 

toolbarItemPtr->put_CntrlType(2); 

//(int)Visio.VisUICtrlTypes.visCtrlTypeBUTTON;

toolbarItemPtr->put_FaceID(270);

m_app->SetCustomToolbars(uiToolbarPtr); //Add the Toolbar to the Application





Command Handling

    //Handling the User click commands from Visio - Command Handler     

        if (pV2L->szCmdLineArgs != NULL){

            if (strcmp(pV2L->szCmdLineArgs, "Item") == 0){

            MessageBoxA(0, pV2L->szCmdLineArgs, "Info", 0);



            }

        }
要运行
打开Visio应用程序。导航工具- GT;选项- GT,先进的文件路径。添加附加组件的路径的VisioProject1.vsl文件路径,然后单击确定。关闭并重新打开Visio应用程序。导航工具- GT;附加组件。选择在运行添加在弹出的窗口VisioProject1。单击"确定"添加上运行。正如我提到的图片,你可以看到在Visio应用程序自定义的工具栏和菜单。如果你点击菜单或工具栏项,那么它就会显示项目名称的消息框。

回答

评论会员:迪特尔斯腾 时间:2011/12/16
!不是在所有的文章
我应该在这里看到
复制向导生成的代码,这里没有任何进一步的解释?从一个匿名作者?差
评论会员:伯特delaVega 时间:2011/12/16
请删除这个垃圾。
评论会员:春龙林 时间:2011/12/16
本文就是好!