zdqwy19 发表于 2013-11-14 12:30:43

acedssget如何执行其他选项

acedssget如何象acedgetpoint那样输入关键字执行其他操作。

风树 发表于 2013-11-14 13:10:26

直接实现不知道,可以用如下形式思路代替吧(不一定要用 acedGetReal)
不知道是不是你需要的
                double nReturn_=0;
                int Re = acedGetReal(_T("\n输入1。。。输入2。。。输入3。。。"), &nReturn_);
                if((nReturn_>0))//正常输入返回值不为0(空格,0)
                {
                        if (nReturn_==1)
                        {
                                  acedssget。。。。。。。。。。。。。。。。。。。。。。。
                        }
                        else
                        {
                                  acedssget。。。。。。。。。。。。。。。。。。。。。。。
                        }

                }else//空格或esc键
                {
                        acutPrintf(_T("\n用户取消操作或输入数据无效"));
                }

zdqwy19 发表于 2013-11-14 15:00:48

风树 发表于 2013-11-14 13:10直接实现不知道,可以用如下形式思路代替吧(不一定要用 acedGetReal)不知道是不是你需要的double n ...

acedssget有个“:k”模式支持键盘输入,我不知道如何获得这个键盘输入的字符串,e文帮助看不懂,又没有中文例子。

wwwliuyu 发表于 2013-11-15 20:30:26

zdqwy19 发表于 2013-11-14 15:00 static/image/common/back.gif
acedssget有个“:k”模式支持键盘输入,我不知道如何获得这个键盘输入的字符串,e文帮助看不懂,又没有中 ...

:k是关键字模式,:?是接受除关键字和自带关键字外其它字符串,:k模式在调用前要使用acedSSSetKwordCallbackPtr为它设置回调函数,:?模式在调用前要使用acedSSSetOtherCallbackPtr为它设置回调函数,:k:?可组合使用。

zdqwy19 发表于 2013-11-16 00:27:22

RE: acedssget如何执行其他选项

wwwliuyu 发表于 2013-11-15 20:30 static/image/common/back.gif
:k是关键字模式,:?是接受除关键字和自带关键字外其它字符串,:k模式在调用前要使用acedSSSetKwordCallba ...

给一段代码实例好吗!假如我设置了字母O为关键字,如何判断我输入的字母是不是字母O,是执行一个提示,不是继续选择。

wwwliuyu 发表于 2013-11-16 09:32:37

zdqwy19 发表于 2013-11-16 00:27 static/image/common/back.gif
给一段代码实例好吗!假如我设置了字母O为关键字,如何判断我输入的字母是不是字母O,是执行一个提示,不 ...


<P>void Test()
{
// 保存旧的回调函数
resbuf* (*oldFunc) (const ACHAR*);
acedSSGetKwordCallbackPtr(&oldFunc);
// 设置新的回调函数
acedSSSetKwordCallbackPtr(ssCallback);
ads_name ss;
ACHAR kwordlist[] = { _T("O _ O") };
if (RTNORM == acedSSGet(_T("_:K"), NULL, kwordlist, NULL, ss))
acedSSFree(ss);
acedSSSetKwordCallbackPtr(*oldFunc);
}
//回调函数,必须是全局或是静态的。
resbuf* ssCallback(const TCHAR* kword)
{
acutPrintf(_T("\n你输入了关键字: '%s'"), kword);
resbuf *result = NULL;
return result;
}</P>

zdqwy19 发表于 2013-11-16 13:04:56

RE: acedssget如何执行其他选项

wwwliuyu 发表于 2013-11-16 09:32 static/image/common/back.gif


谢谢了!试验成功。

why1025 发表于 2015-3-21 17:49:59

页: [1]
查看完整版本: acedssget如何执行其他选项