BCB下开发ActiveX,帮忙看下。
前两天不忙写了一个VCL控件,想请别的公司的朋友帮忙测试一下。一是为了对方使用起来方便,二是不想把源码交出去。想做成ActiveX控件。在控件中我自定了2个消息。
#define WM_GETCOMMDATA WM_USER+100
#define WM_SENDCOMMSTATE WM_USER+101
...
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_GETCOMMDATA,TMessage,CommWndProc);
MESSAGE_HANDLER(WM_SENDCOMMSTATE,TMessage,CommWndProc);
END_MESSAGE_MAP(TComponent);
分别也都做了宏。都没有问题。自定义的VCL控件也能够正常的编译和使用。
在用向导做ActiveX的时候也都没有问题,关联属性事件也都没有问题。直到编译,问题就开始了,在编译的时候提示我MESSAGE_HANDLER这两个宏定义的参数不对:E2219 Wrong number of arguments in call of macro 'MESSAGE_HANDLER'。我估摸着也许是我自定义的消息这里引起的问题。但是参考了很多ocx控件的编写仍然没有办法解决。请教各位达人帮我分析下,问题是出在这里吗?还是有其他什么地方的问题。
PS.另我再发泄两句,BCB开发ActiveX真的好郁闷,也许是我对BC不熟悉的原因,以前VC写好像就没有这样。本来继承自TComponent的控件被迫该成继承自TWinControl。虽然也明白需要从TWinControl继承的原因,可是心里还是不爽啊。希望各位在回答我问题的基础上帮分析下BCB开发底层的东西是不是真的要比VC差。
[解决办法]
在bcb中开发控件没这么写吧,这些是vc的风格。
[解决办法]
MESSAGE_HANDLER改成VCL_MESSAGE_HANDLER试试.