xiaowei86 发表于 2008-10-8 09:54:43

怎样获得控件NUMERIC当前default value.

怎样获得控件NUMERIC当前 defaultvalue,然后在TEXT MESSAGE中显示出来,GetCtrlAttribute (panelHandle,PANEL_NUMERIC_16, ATTR_DFLT_VALUE, &value);
Fmt(str,"%s",value);
SetCtrlVal(panelHandle6,PANEL_5_TEXTMSG_3,str);
我用这样做,语法没错,但是不能在TEXT MESSAGE中显示出来,运行时出错, 错误如下:       NON-FATAL RUN-TIME ERROR:   "3839.c", line 284, col 22, thread id 0x000000C8:   Parameter type incompatible with format specifier.
我前面把value定义成duobe,我不知道是怎么回事?请指教!!!

netcreature 发表于 2008-10-8 11:51:20

这是由于Fmt函数数据类型不匹配而造成的。
如果Numeric控件的默认数据类型为double,则定义:
double value;
char str;    /*字符串长度根据你要显示的最大数据长度而设(含小数点)*/
改变Fmt函数如下:
Fmt(str,"%s<%f",value);
。。。。。。
就可以通过了!其他数据类型请参看help。
祝你好运!

[ 本帖最后由 netcreature 于 2008-10-8 11:52 编辑 ]

xiaowei86 发表于 2008-10-8 14:27:38

谢谢版主了,调试成功了!!!
还有个问题,我这有个小项目是这样的,我的目地是当鼠标左单击主界面上的两个NUMERIC中的任意一个时,弹出一个数字键盘,然后单击数字键盘上的0、1、2~9可以在上面的STRING中显示出来,而“退格”“取消”键也有相应的功能,以便可以在触摸平板电脑上直接输入需要的数值。请问版主有没做过类似的程序?有什么例子或建议之类的?因为我看到很多工业上的上位机程序都要用到这一个功能,这样很方便设定数值。
(具体程序在附件上)

netcreature 发表于 2008-10-8 15:26:43

这方面的东西我没有做过,不过看了你的说明,我觉得你可以参考我上传的:王建新《LabWindows/CVI测试技术及工程应用》例程第三章源码中计算器的例程,我想它对你会比较有用。http://www.cpubbs.com/bbs/thread-59010-1-1.html。
祝你好运!

xiaowei86 发表于 2008-10-9 10:43:03

非常感谢!!!
页: [1]
查看完整版本: 怎样获得控件NUMERIC当前default value.