VC自动化向导的bug2(vs2005使用Labview控件类时的错误)

在VC++项目中使用Labview的slider控件,遇到设置填充颜色的问题。自动化向导生成的接口类名称与方法不匹配,导致无法直接设置FillColor属性。通过参考VC6.0的处理方式,手动创建和修改接口类,最终解决了颜色设置问题。同时发现VS2005自动化向导存在接口类错误和参数类型不一致的bug。
摘要由CSDN通过智能技术生成

   项目中用到Labview的slider控件,需要在程序中控制slider填充区域的颜色(图中绿色区域)
.
   颜色参数为属性分组中的Pointer中的FillColor属性.

   查找slider类的成员函数,希望找到能设置FillColor的函数,发现其中并没有直接设置的函数,但有一个获取CwPointer指针的函数

CWPointer * GetActivePointer()
{
	CWPointer * result;
	GetProperty(0x105, VT_DISPATCH, (void*)&result);
	return result;
}
   接着查找CwPointer的成员变量,发现了设置FillColor属性的方法

CWPointer : IDispatch
{
    OLE_COLOR GetFillColor ( );
    void PutFillColor ( OLE_COLOR _val );
  于是尝试先通过slider变量获取Cwpointer属性,在调用Cwpointer的方法设置颜色,结果程序报错:提示CwPointer类为抽象类,不能实例化。由此发现了vs2005自动化向导的一个Bug: 没有正确的定义控件类包含的所有接口类(根本就没有定义),需要自己手动添加这些接口类。

   手动添加接口类的方法:类视图->添加类->MFC->TypeLib中的MFC类


   在类型库中找到Nat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值