公司招聘

公司:杭州格原信息技术有限公司 (工作地点杭州西湖区)
岗位工作:
1、基于ObjectARX 进行CAD二次开发(C#、C++均可);
2、根据公司现有产品进行功能迭代;
4、负责项目的整体开发进度,编写相关技术文档;
5、提供内部技术支持,协助用户及维护人员快速解决Bug;
6、负责公司现有CAD二次开发产品的开发维护工作。
招聘要求:
1.大专及以上学历;
2.有良好的语言表达和沟通能力;
3.熟练使用C#或C++语言;
4.一年以上AutoCAD开发经验,不分项目大小,有完整的项目实施经验,能够运用C#或C++、Object ARX等编程语言进行AutoCAD二次开发;
5.熟练操作AutoCAD制图软件;
工资:面议
联系电话 18667180833(微信同号)

发表在 ObjectArx.Net | 留下评论

MindManager2018试用期过后 修改过期时间 破解使用(重点:需要修改注册表)

MindManager2018有30天的试用期。

试用结束后就不能用了,百度了一下,大部分人的方法都是转载的

1.找到路径:C:\Users\xxx\AppData\Roaming\MindManager\MindManager2018.ini 文件中记录了安装时间和最后一次启动时间。
2.打开MindManager2018.ini
[MindManager]
InstallTime=1537004338
LastLoading=1537004338

InstallTime代表安装时间,LastLoading记录最后一次启动时间。

3.30天过期之后,修改这两个时间等于当前时间的时间戳即可。

计算时间戳的网址

测试过后发现根本不能用,为什么呢?

做为一个程序员,放弃不是我的风格。

第一步:改系统时间,发现还是不行

第二步:查找注册表,因为我发现如果你的时间修改过后,打开MindManager2018时间会自然的被替换回来。

用替换回来的值,到注册表中查询,立马发现了端倪。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MindManager\MindManager2018\

找到项Install:这个里面才记录了安装时间,把这个时间改了,就可以用了

 

但是每次修改只能用30天,也还是非常不方便的,如果确实用的着的话,建议大家支持一下,毕竟2018版,也不贵,才不到300。

发表在 实用软件 | 标签为 , | 留下评论

使用AcPlPlotEngine打印

整个打印的过程是比较复杂的, 要全面搞懂, 就要了解AcDbLayout、 AcDbPlotSettings、
AcDbPlotSettingsValidator、 AcPlPlotEngine、 AcPlPlotInfo几个类(缺一不可),以及它们之间的相互关系,而打印进度对话框可以不要。

注意加上头文件:#include “AcPlPlotEngine.h”

void batPlot()
{
//批量打印
// 取得当前layout
AcDbLayoutManager *pLayoutManager =
acdbHostApplicationServices()->layoutManager(); //取得布局管理器对象
AcDbLayout *pLayout =
pLayoutManager->findLayoutNamed(pLayoutManager->findActiveLayout(TRUE),TRUE);//获得当前布局
AcDbObjectId m_layoutId = pLayout->objectId();//获得布局的Id
//获得打印机验证器对象
AcDbPlotSettingsValidator *pPSV =NULL;
pPSV = acdbHostApplicationServices()->plotSettingsValidator();
//更新打印设备列表
pPSV->refreshLists(pLayout);
//打印机设置
ACHAR* m_strDevice = _T(“DWF6 ePlot.pc3”);//打印机名字
pPSV->setPlotCfgName(pLayout,m_strDevice);//设置打印设备
ACHAR* m_mediaName = _T(“ISO A4”);//图纸名称
pPSV->setCanonicalMediaName(pLayout,m_mediaName);//设置图纸尺寸
pPSV->setPlotType(pLayout,AcDbPlotSettings::kWindow);//设置打印范围为窗口
pPSV->setPlotWindowArea(pLayout,100,100,200,200);//设置打印范围,超出给范围的将打不出来
pPSV->setCurrentStyleSheet(pLayout,_T(“JSTRI.ctb”));//设置打印样式表
pPSV->setPlotCentered(pLayout,true);//是否居中打印
pPSV->setUseStandardScale(pLayout,true);//设置是否采用标准比例
pPSV->setStdScaleType(pLayout,AcDbPlotSettings::kScaleToFit);//布满图纸
pPSV->setPlotRotation(pLayout,AcDbPlotSettings::k90degrees);//设置打印方向

//pPSV->setPlotViewName(pLayout,_T(“打印1”));

//准备打印/////////////////////////////////////////////////////////////////////////
AcPlPlotEngine* pEngine = NULL;//创建打印引擎
if(AcPlPlotFactory::createPublishEngine(pEngine)!=Acad::eOk)
{
acedAlert(_T(“打印失败!”));
return;
}
// 打印进度对话框
AcPlPlotProgressDialog *pPlotProgDlg = acplCreatePlotProgressDialog(acedGetAcadFrame()->m_hWnd,false,1);
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kDialogTitle,_T(“lot API Progress”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelJobBtnMsg,_T(“Cancel Job”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelSheetBtnMsg,_T(“Cancel Sheet”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetSetProgressCaption,_T(“Job Progress”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetProgressCaption,_T(“Sheet Progress”));
pPlotProgDlg->setPlotProgressRange(0,100);
pPlotProgDlg->onBeginPlot();
pPlotProgDlg->setIsVisible(true);
//begin plot
Acad::ErrorStatus es = pEngine->beginPlot(pPlotProgDlg);
AcPlPlotPageInfo pageInfo;//打印页信息
AcPlPlotInfo plotInfo; //打印信息
// 设置布局
plotInfo.setLayout(m_layoutId);
// 重置参数
plotInfo.setOverrideSettings(pLayout);
AcPlPlotInfoValidator validator;//创建打印信息验证器
validator.setMediaMatchingPolicy(AcPlPlotInfoValidator::kMatchEnabled);
es = validator.validate(plotInfo);
// begin document
const TCHAR *szDocName = acDocManager->curDocument()->fileName();//获得当前的文件名

//最后一个参数需要传入文件名
es = pEngine->beginDocument(plotInfo, szDocName, NULL,1,true,_T(“D:\\test.dwf”));
//给打印机和进度对话框发送消息
pPlotProgDlg->onBeginSheet();
pPlotProgDlg->setSheetProgressRange(0, 100);
pPlotProgDlg->setSheetProgressPos(0);
//begin page
es = pEngine->beginPage(pageInfo, plotInfo, true);
es = pEngine->beginGenerateGraphics();
es = pEngine->endGenerateGraphics();
//end page
es = pEngine->endPage();
pPlotProgDlg->setSheetProgressPos(100);
pPlotProgDlg->onEndSheet();
pPlotProgDlg->setPlotProgressPos(100);
//end document
es = pEngine->endDocument();
//end plot
es = pEngine->endPlot();
//返回资源
pEngine->destroy();
pEngine = NULL;
pPlotProgDlg->destroy();
pLayout->close();
}

发表在 ObjectArx | 留下评论

CAD二次开发环境搭建

CAD版本和ObjectArx+VS版本对应关系 更新到CAD2020

CAD版本

内部版本号

Arx版本

VS版本

备注

2004

R16.0

ObjectARX 2004/2006

VS2002/VS2003

2004不支持表格

2005

R16.1

2006

R16.2

2007

R17.0

ObjectARX 2007

VS2005

CAD2008后开始有64位版本

2008

R17.1

2009

R17.2

2010

R18.0

ObjectARX 2010

VS2008

需要升级到SP1,否则编译会报错

2011

R18.1

2012

R18.2

2013

R19.0

ObjectARX 2013

VS2010

 

2014

R19.1

2015

R20.0

ObjectARX 2015

VS2012/VS2013

 

2016

R20.1

2017

R21.0

ObjectARX 2017

VS2015

 

2018

R22.0

ObjectARX 2018

VS2015

升级到SP3

2019

R23.0

ObjectARX 2019

VS2017

升级到SP2

2020

R23.1

1:CAD的内部版本号格式为R大版本.小版本。大版本号相同的CAD可以用同一个Arx版本编译,但是低版本的CAD不支持高版本的Arx。例如ObjectArx2004编译的程序AutoCAD2004~2006都可以使用,但是ObjectArx2006编译的程序AutoCAD2006可以使用,2004和2005都不可以使用。 2:AutoCAD2013之前每三年推出一个大版本,之后每两年推出一个大版本。大版本之间无法做到相互支持,因为每个大版本对应的编译VS版本都不相同,MFC依赖库也不相同,无法相互兼容。 3:从CAD2006开始支持.Net二次开发,但是前面几个版本2006~2008接口也不完全相同,需要做一下兼容性调整,再后面的版本就基本稳定了,这个环境就容易的多。做一些简单的应用开发可以考虑采用.Net来做二次开发。    

发表在 ObjectArx | 留下评论

中印爆发最严重对峙之一个普通国民的思考

中印爆发最严重对峙

事件的前因后果网上,各种新闻铺天盖地

这里就不抄了,只想发表一下做为一个普通国民最基础最纯真的看法。

没有别的,中国人太可怜了。

强大的国家欺负我们,美国轰炸南斯拉夫大使馆,银河号事件,派遣航母进入台湾海峡,我们打不赢他们,我们忍了,我们抗议,我们要和平。

跟我们有的一拼的国家,当然有些人说印度、越南完全跟中国不在一个数量级上,我觉得也不完全说的过去,总体上来说他们肯定要比我们差一点,但至少不会有代差,不会有数量级上的差异,真的说他们比我国差很多的估计是捧杀。我们还是忍,我们还是抗议,还是让万能的外交部冲在最前面。总结起来就是我抗议你们欺负我,你们别再欺负我了啊。

弱小的国家欺负我们,例如印尼,菲律宾。我们还是忍,我们还是抗议,还是让万能的外交部冲在最前面。连经济制裁这种手段都不敢用。

中国人民能活下来真心不容易,对内有最牛逼哄哄的城管,拆迁队,警察。如果他们拿对付下面人民1%的战斗力去对付印度,菲律宾,他们还敢在边界猖狂。对付美国当然他们没有这个能力。对外有和平,和平,和平的政府。

什么时候才能想清楚,和平不是别人给你的施舍,而是你奋斗的结果。

发表在 其它 | 标签为 | 留下评论

高科西路(沪南路-罗山路)最新消息17年7月12日

昨天去蓝海博龙国际大酒店还EVCARD车的时候,保安说扩路已经开工,门口已经封起来施工了,上海还有这种比乡间小路还破的路也是醉了。

关键上就这一小段,沪南路往西一段和罗山路往东一段都是特别宽敞的路。

就这样一条大破路竟然是连接北蔡和张江的城市主干道,每天堵得不成样。

明明只有十分钟的路程却要开半个小时还多。

不过幸好盼了几十年总算开工了。

发表在 其它 | 标签为 | 留下评论

C#获取命令行输出内容的方法

转载:http://www.cnblogs.com/ymind/archive/2012/03/23/2415038.html

很多时候我们需要以编程的方式获取命令行输出的内容,研究了不少时间,终于搞定了。

获取命令行输出内容的方式有传统和异步两种方式。

传统方式:

using (Process process = new System.Diagnostics.Process())
{
process.StartInfo.FileName = “ping”;
process.StartInfo.Arguments = “www.ymind.net”;
// 必须禁用操作系统外壳程序
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;

process.Start();

string output = process.StandardOutput.ReadToEnd();

if (String.IsNullOrEmpty(output) == false)
this.textBox1.AppendText(output + “\r\n”);

process.WaitForExit();
process.Close();
}

异步方式:

private void button3_Click(object sender, EventArgs e)
{
using (Process process = new System.Diagnostics.Process())
{
process.StartInfo.FileName = “ping”;
process.StartInfo.Arguments = “www.ymind.net -t”;
// 必须禁用操作系统外壳程序
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;

process.Start();

// 异步获取命令行内容
process.BeginOutputReadLine();

// 为异步获取订阅事件
process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
}
}

private void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
// 这里仅做输出的示例,实际上您可以根据情况取消获取命令行的内容
// 参考:process.CancelOutputRead()

if (String.IsNullOrEmpty(e.Data) == false)
this.AppendText(e.Data + “\r\n”);
}

#region 解决多线程下控件访问的问题

public delegate void AppendTextCallback(string text);

public void AppendText(string text)
{
if (this.textBox1.InvokeRequired)
{
AppendTextCallback d = new AppendTextCallback(AppendText);
this.textBox1.Invoke(d, text);
}
else
{
this.textBox1.AppendText(text);
}
}

#endregion

但是在异步方式下也有一个麻烦就是等待程序结束无法调用

process.WaitForExit();

因为调用这个会导致堵塞

命令行输出不是一行行出来的,而是一下子出来的。

解决办法就是不调用process.WaitForExit();

而自己去控制

while (!process.HasExited)
{
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(20);
}

发表在 C# | 标签为 , , | 留下评论

不小心把屏幕菜单隐藏了怎么调出来

CAD好帮手支持屏幕菜单和CAD菜单两种菜单,双保险

所以忽略了细节处理,万一用户把两个都关闭了

那不是都找不到了吗?

这里告诉大家一个补救办法

在CAD命令行里输入cadgj_showmenu

看下屏幕菜单是不是又显示出来了。

发表在 CAD好帮手教程 | 标签为 , | 留下评论

CAD、CATIA绘图人员不建议购买ThinkPad E450c

入手了一台ThinkPad E450c

但是不知道什么原因,显卡驱动总是有问题。

如果运行CAD2010,CATIA R24。

经常会出现驱动从异常中恢复这种情况。

更新到最新版本的驱动也无法解决问题。

遇到这种情况蓝屏的可能性超过50%,弄的我现在除非实在有必要。

一般都不打开CAD2010,就用08看图。

但是使用CAD2008却不会出现这种问题,感觉应该是驱动不兼容的问题。

这种问题估计都不在保修范围内,但是对设计画图影响非常大。

发表在 其它 | 留下评论

CATIA R24破解

本机环境:

Windows 7 家庭普通版 64位操作系统

主要参照的破解文章为

百度文库的<<CATIAV56R2014安装教程 >>

大家可以参照着下载下来看,过程是没有问题的。

CATIAV56R2014.docx

听一些朋友说持续多次破解最后也是可以破解成功的的。

但是我试了很多很多次,最终还是没有破解成功,后面我想了想

破解软件的新版本能否解决问题呢,一实验还真就破解成功了。
_SolidSQUAD_.rar

其中对应的exe文件为:DSLS_SSQ_V6R2015x_Installer_01042015.exe

文件中显示的应该是可以破解R25的,但是由于没有具体试过,所以不敢妄下结论。

如果有破解R25成功的欢迎给我留言。

操作应该都是差不多的。

发表在 其它 | 标签为 , , | 留下评论

CATIA P3 V5-6R2014用于学生怎么回事求解

CATIA用于学生

解决方案:

将许可证中的

CATIA用于学生

勾选去掉即可解决。

 

 

发表在 其它 | 标签为 | 留下评论

VS2005 180天限制破解方法

VS2005破解在控制面板的“添加或删除程序” 中选择“更改/删除”Microsoft Visual Studio 2005,然后输入正式版的序列号( KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J ),就可以把 VS2005 试用版升级为正式版(破解180天试用限制)
Visual Studio 2005注册升级
可升级正式版key:KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J
找到SETUP文件夹下的setup.sdb,用记事本打开它,找到[Product Key],将下面的一行序列号删除,改为正式Key,保存后再安装就是正式版了,记住,中间没有横线!!

 

发表在 实用软件 | 标签为 | 留下评论

用搜狗输入法总是自动搜索 怎么取消?

设置属性中

搜索

搜索环境关闭掉

搜狗取消自动搜索

 

 

 

发表在 其它 | 标签为 | 留下评论

快刀CAD批量打印KDPlot

官网 http://www.kuaidaowork.com快刀批量打印快刀CAD批量打印KDPlot 3.8.7

  • 全自动图框极速识别;
  • 按顺序批量打印图纸;
  • CAD图对应转为PDF/JPG/PNG/PLT
  • PDF与CAD图纸页面纵横向自动适应;
  • 自动配置黑白、蓝图等打印样式;
  • 图幅自适应,比例自适应;
  • 按图幅大小分类生成PDF
  • 适用于 模型/布局(多图/单图)
发表在 CAD实用软件 | 标签为 | 留下评论

解决.Net中文输入BUG

WinForm程序有的时候会遇到无法切换到中文输入的BUG
解决办法如下:
在Form的构造函数中将ImeMode修改为ImeMode.OnHalf
public Form1()
{
InitializeComponent();
ImeMode = ImeMode.OnHalf;
}
另外针对DataGridView还需要特殊处理
在事件EditingControlShowing中将Control的ImeMode设置为ImeMode.OnHalf
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control == null)
return;
e.Control.ImeMode = ImeMode.OnHalf;
}
这样默认打开的时候所有的输入法都是中文半角的了。

发表在 C# | 留下评论

VS2010专业版密钥(亲测有效)

YCFHQ-9DWCY-DKV88-T2TMH-G7BHP
装了VS2010,安装后可以激活的。

发表在 实用软件 | 标签为 | 留下评论

C++反转单向链表

单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针

单项列表的主要特点就是只知其子,不知其父。每个节点只能访问到它的下一个节点而访问不了它的上一个节点。

struct  Node {  int value;  Node* rbnext; };

这个简单的结构体构成了一个最简单的单链表节点

初始化

Node* pHead=new Node;

pHead->value=0;

pHead->rbnext=NULL;

Node* p=pHead;

for(int i=1;i<=5;i++)

{

p->rbnext=new Node;

p=p->rbnext;

p->value=i;

p->rbnext=NULL;

}

反转函数

void Reverse(Node*& pHead)

{

Node* p=pHead;//当前节点

Node* pBefore=NULL;// 上一个节点

Node* pNext=p->rbnext;//下一个节点

while(pNext!=NULL)

{

p->rbnext=pBefore;//当前节点的下一个节点为pBefore

pBefore=p;//pBefore设为当前节点

p=pNext;//当前节点移到下一个节点

pNext=pNext->rbnext;//下一个节点顺移

}

p->rbnext=pBefore;//最后一个节点赋值前一个下一个节点为pBefore

pHead=p;//最后赋值链表头

}

反转之前是 0 1 2 3 4 5

反转之后是 5 4 3 2 1 0

证明反转算法是正确的。

 

发表在 C++ | 标签为 | 留下评论

云在指尖骗局

去我小叔家走亲戚

他硬是拉着我进入了云在指尖

我想到网上查一下是不是骗子是不是传销

从分销模式来看,已经涉及传销,主要是发展下线,锁定亲戚朋友,甚至陌生人,只要能发展代理商,管你认识不认识。微商本来是销售产品,一切以产品为中心的,但是云在指尖,推崇的是让你去锁定别人,发展代理商,发展层级关系,这已经违背了正规微商的初衷,这就是一个网络传销。

网上的讨论各种各样,有的说就算是传销又怎么样,我这是是全新的网络传销。

为了更深入的搞清楚

不想小叔深陷其中,毕竟小叔对我家还是挺不错的。

我打开“云在指尖”官网。

找到备案号

琼ICP备15000058号-2

这个没有问题,可是我去工信部官网,竟然查不到。

难道是他们工作人员疏忽写错了,然后我又用域名查询了一下

还是结果:没有符合条件的记录

然后我再 爱站网上查询了一下,还是同样的结果 无备案

总结一下三点

一:发展下线分销 是新型网络传销无疑

二:网站备案号作假,你可以不写,但你写个假的,那还有什么好说的,不是骗人是什么?

三:整个官网所有的篇幅都是教人如何赚钱如何发展下线,这是一个正常的电商该做的吗?

所以大家千万别再上当受骗了。

发表在 网站建设 | 标签为 | 一条评论

C#打印pdf文件

通过调用其他的类库实现

先下载下面6个dll文件

很多网站都喜欢抄文章,说了这些dll,怎么说也得给出下在地址吧

资源下载 ftp://www.cadgj.com/PdfPlot.rar

部分文件为破解版,商业应用请慎重

//O2S.Components.PDFView4NET.dll
//O2S.Components.PDFRender4NET.dll
//FontBox-0.1.0-dev.dll
//IKVM.GNU.Classpath.dll
//IKVM.Runtime.dll
//PDFBox-0.7.3.dll

 

//这是引用的3个命名空间
using O2S.Components.PDFRender4NET;
using System.Drawing.Printing;
using O2S.Components.PDFRender4NET.Printing;

        /// <summary>
        /// 打印的代码
        /// </summary>
        /// <param name=”url”>要打印的PDF路径</param>
        private int  printShow(string url)
        {
            int isOK = 0;
            PDFFile file = PDFFile.Open(url);
            PrinterSettings settings = new PrinterSettings();
            System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
            settings.PrinterName = “hp LaserJet 1160 PCL 5e”;
            settings.PrintToFile = false ;

            //设置纸张大小(可以不设置,取默认设置)3.90 in,  8.65 in
            PaperSize ps = new PaperSize(“test”,4,9);
            ps.RawKind = 9; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx)

            O2S.Components.PDFRender4NET.Printing.PDFPrintSettings pdfPrintSettings = new O2S.Components.PDFRender4NET.Printing.PDFPrintSettings(settings);
            pdfPrintSettings.PaperSize = ps;
            pdfPrintSettings.PageScaling = O2S.Components.PDFRender4NET.Printing.PageScaling.FitToPrinterMarginsProportional;
            pdfPrintSettings.PrinterSettings.Copies = 1;

            try
            {
                file.Print(pdfPrintSettings);
                isOK = 1;
            }
            catch (Exception)
            {
                isOK = -1;
                throw;
            }
            finally
            {

                file.Dispose();
            }
            return isOK;
        }

//单击一个打印按钮进行打印
    protected void btnPrint_Click(object sender, EventArgs e)
    {
        string url = “这里是PDF档的路径如:C:\\Documents and Settings\\AuYeungCK\\My Documents\\myfile\\aa1.pdf”;
        int isOK =-1;
        isOK=printShow(url);
        if (isOK > 0)
        {
            Response.Write(“打印成功!”);
        }
        else {
            Response.Write(“打印失败!”);
        }
    }

发表在 C# | 标签为 , | 留下评论

TrackPopupMenu必须选择一个,类似DoModal

需要显示一个弹出菜单,要求用户在菜单中选择一项,只有用户选择完其中一项函数才返回

类似于CDialog的DoModal,只有用户执行选择后才返回,程序才继续运行

这里就要用到一个非常实用的菜单状态

TPM_RETURNCMD:若设置此标志;函数将用户所选菜单项的标识符返回到返回值里。

TPM_NONOTIFY:若设置此标志,当用户单击菜单项时函数不发送通知消息(不需要发送消息,可选参数)

CMenu menu;

POINT pt;

GetCursorPos(&pt);

 

if (menu.LoadMenu(IDR_MENU_ZWLX)) {

CMenu* pContextMenu = menu.GetSubMenu(0);

 

if (pContextMenu) {

pContextMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON|TPM_RETURNCMD|TPM_NONOTIFY, pt.x, pt.y, acedGetAcadFrame());

}

}

发表在 C++ | 标签为 | 留下评论