明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1690|回复: 0

关于程序启动是关闭命令行对话框

[复制链接]
发表于 2006-1-25 15:29:00 | 显示全部楼层 |阅读模式

有两个问题需要解决:
1.关闭命令行对话框
代码:

  
		CWnd *pWnd = acedGetAcadDockCmdLine();
		if(pWnd)
		{
			pWnd = pWnd->GetParent();
			if(pWnd)
			{
				pWnd = pWnd->GetParent();
				if(pWnd)
				{
					pWnd->ModifyStyle(0,WS_VISIBLE|WS_OVERLAPPED);
					pWnd->ShowWindow(SW_HIDE);
					pWnd->RedrawWindow();
					acedGetAcadFrame()->RecalcLayout();
				}
			}
		}
  


已经解决。

2.程序启动时起作用
最初以为直接在On_kInitAppMsg消息中运行上述代码即可,事实上不起作用,感觉关闭之后又显示出来了。(另外如果要在On_kInitAppMsg消息中控制视图zoom-e也不可以,控制视图代码如下)
代码:

  
void CGlobalFuns::zoomExt()
{
	// get the extents of the drawing
	AcDbViewTableRecord view;
	AcGePoint3d max =
		acdbHostApplicationServices()->workingDatabase()->extmax(),
		min = acdbHostApplicationServices()->workingDatabase()->extmin();

	AcGePoint2d max_2d (max[X], max[Y]);
	AcGePoint2d min_2d (min[X], min[Y]);
	// now set the view centre point
	view.setCenterPoint (min_2d + (max_2d - min_2d) / 2.0);
	// now height and width of view
	view.setHeight(max_2d[Y] - min_2d[Y]);
	view.setWidth (max_2d[X] - min_2d[X]);
	// set the view
	acedSetCurrentView (&view, NULL);
	// updates the extents
	acdbHostApplicationServices()->workingDatabase()->updateExt(TRUE);
}
  


于是只好用AutoCAD2004doc.lsp实现,发现也不尽如人意,讨论一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 01:53 , Processed in 0.159378 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表