当前位置:首页 > 帮助文档 > C++开发 > 界面控制
添加自定义图标显示/隐藏工具条或工具条之上的按钮显示/隐藏工具栏显示/隐藏按钮显示/隐藏菜单栏加载菜单
添加自定义图标

下载地址:


http://www.mxcad.net:2080/cpp/Interface control.zip


打开控件下的MxEdit.sln,在资源视图下添加一个bitmap资源,将ID使用双引号包含,双击该资源,在位图编辑器中进行如下设置:



blob.png



将要添加的位图复制进该资源,然后编译,编译之后会有BUG,需要重复上述步骤,再次编译,在输出的目标目录下(在工具文件(后缀为mxt)或菜单文件(后缀为mnu)添加一个按钮)


blob.png


启动我们的演示工程,运行效果如下:



blob.png



对于此演示,在此文档的同级目录下,在“添加自己的图标.mp4”中进行了演示。

显示/隐藏工具条或工具条之上的按钮

显示隐藏工具条的接口如下:


        // -------------------------------------------------------------------------
	// Summary:
	// 		隐藏或显示工具条上的按钮
	// Parameters:
	// 		hOcx			- 控件窗口名柄
	//		sToolBarName	- 工条名称
	//		sControlName	- 按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮
	//		isHide          - 是否隐藏按钮
	//		isAutoRecalcLayout- 是否自动重新布局窗口上的工具条。
	// Returns:
	// 		成功返回TRUE
	// Remarks:
	// 		例如:VC代码,隐藏绘图工具栏上的绘线和绘矩形框按钮。
	// 		<code>
	// 				MxDraw::HideToolBarControl(m_hDrawOcx,_T("绘图工具"),_T("绘线,绘矩形框"));
	// 		</code>
	// -------------------------------------------------------------------------
	static BOOL  HideToolBarControl(IN MXDRAWOCXHANDLE hOcx,
		IN LPCTSTR pszToolBarName,
		IN LPCTSTR pszControlName = NULL,
		IN BOOL isHide = TRUE ,
		IN BOOL isAutoRecalcLayout = TRUE);


调用实例:


MxDraw::HideToolBarControl(MxDraw::GetCurOcxHandle(), L"ET工具", L"测距");


上段代码即为:隐藏ET工具条上的测距按钮

显示/隐藏工具栏

显示/隐藏工具栏的调用接口如下:


	// -------------------------------------------------------------------------
	// Summary:
	// 		是否显示工具条
	// Parameters:
	// 		hOcx				-		控件句柄
	//		isShow				-		为TRUE显示所有工具条,否则隐藏所有工具条
	// Remarks:
	// 		隐藏或显示所有工具条
	// -------------------------------------------------------------------------
	static void ShowToolBars(IN MXDRAWOCXHANDLE hOcx,BOOL isShow);


调用实例:


		MxDraw::ShowToolBars(
			MxDraw::GetCurOcxHandle(),
			TRUE						
		);


上段代码即为:显示所有工具条


或使用如下调用:


MxDraw::ShowToolBars(
    MxDraw::GetCurOcxHandle(),
    L"浏览",
    TRUE      
);


上段代码即为:显示“浏览”工具条


控件已有如下默认的工具条:

ET工具、编辑工具、特性、绘图工具、常用工具、浏览;

显示/隐藏按钮

显示/隐藏按钮的调用接口如下:


	// -------------------------------------------------------------------------
	// Summary:
	// 		隐藏或显示工具条上的按钮
	// Parameters:
	// 		hOcx			- 控件窗口名柄
	//		sControlName	- 按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮
	//		isHide          - 是否隐藏按钮
	// Returns:
	// 		成功返回TRUE
	// -------------------------------------------------------------------------
	static BOOL  HideMenuBarControl(IN MXDRAWOCXHANDLE hOcx,
		IN LPCTSTR pszControlName = NULL,
		IN BOOL isHide = TRUE) ;


调用实例:


	MxDraw::HideMenuBarControl(MxDraw::GetCurOcxHandle(), L"新建(&N)");


上段代码即为:隐藏“新建(&N)”按钮

显示/隐藏菜单栏

显示/隐藏菜单栏的调用接口如下:


	// -------------------------------------------------------------------------
	// Summary:
	// 		是否显示菜单条,默认显示.
	// Parameters:
	//		hOcx                 -	控件句柄
	//		isShow               -  为TRUE显示,否则隐藏
	// -------------------------------------------------------------------------
	static void ShowMenuBar(IN MXDRAWOCXHANDLE hOcx,BOOL isShow);


调用实例:


		MxDraw::ShowMenuBar(
			MxDraw::GetCurOcxHandle(),	
			FALSE						
		);
加载菜单

加载菜单的调用接口如下:


	// -------------------------------------------------------------------------
	// Summary:
	// 		重新从一个菜单文件加载菜单.
	// Parameters:
	//		hOcx                 -	控件句柄,不能为空
	//		sMenuFile			   - 需要重新加载的菜单文件。 
	// Returns:
	// 		成功返回TRUE
	// -------------------------------------------------------------------------
	static BOOL ReLoadMenu(IN MXDRAWOCXHANDLE hOcx,const CString& sMenuFile);


弹出菜单的调用接口如下:


	// -------------------------------------------------------------------------
	// Summary:
	// 		执行一个命令
	// Parameters:
	// 		hOcx               -	控件句柄
	// 		pszExecute         -	命令名
	// 		bActivate          -    暂没使用,取默认值
	// 		bWrapUpInactiveDoc -	暂没使用,取默认值
	// 		bEchoString        -    是否在命令行显示提示
	//		pParam             -    命令参数,用户不需要自己释放
	//		bFunCall		   -    是否直接调用命令函数。
	// Remarks:
	// 		执行一个命令,与McApDocManager:: sendStringToExecute函数一样
	// 		例如:如下执行打开文件命令代码:
	// 		<code>
	// 			acDocManager->sendStringToExecute(MxDraw::GetDatabase(m_hDrawOcx)->GetDocument()
	// 				,_T("OpenDwg") );
	// 		</code>
	// -------------------------------------------------------------------------
	static bool SendStringToExecute(MXDRAWOCXHANDLE hOcx,
		LPCTSTR pszExecute,
		bool bActivate = true,
		bool bWrapUpInactiveDoc = false,
		bool bEchoString = true,
	   struct resbuf* pParam = NULL,
		bool bFunCall = false);


对于以上两个调用接口所需使用的菜单文件,我们在控件的Bin目录下即可找到



blob.png

梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703