从DevExpress中的TCxGroupBox生成一个新控件问题

老小笨鸟 2013-07-12 05:11:08
如题,生成一个package后,什么也不加,编译报错,说PaintWindow找不到,[Linker Error] Unresolved external '__fastcall Cxcontrols::TcxControl::PaintWindow(void *)' referenced from path\CXGROUPBOXEX.OBJ,这个是怎么回事,请大拿解惑
...全文
838 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
老小笨鸟 2013-07-16
各位高手,帮忙看看啊,我就想从cxGroupBox派生一个新控件,上面我还什么也没干呢,各位,试试吧?
回复
老小笨鸟 2013-07-16
已经包含了吧?就是上面的代码
回复
老小笨鸟 2013-07-15
在cxControls里
回复
ccrun.com 2013-07-15
用UltraEdit的全文搜索功能,看看PaintWindow函数是在DevExpress的哪个bpi文件中存在,然后把这个bpi文件加入到工程。
回复
老小笨鸟 2013-07-15
老妖,请帮忙看看,我这个还什么没干呢,可就是不能编译
回复
老小笨鸟 2013-07-15
CPP文件: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "cxGroupBoxEx.h" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGroupBox" #pragma package(smart_init) //--------------------------------------------------------------------------- // ValidCtrCheck is used to assure that the components created do not have // any pure virtual functions. // static inline void ValidCtrCheck(TcxGroupBoxEx *) { new TcxGroupBoxEx(NULL); } //--------------------------------------------------------------------------- __fastcall TcxGroupBoxEx::TcxGroupBoxEx(TComponent* Owner) : TcxGroupBox(Owner) { } //--------------------------------------------------------------------------- void __fastcall TcxGroupBoxEx::CreateWnd() { TcxGroupBox::CreateWnd(); } //--------------------------------------------------------------------------- void __fastcall TcxGroupBoxEx::Paint(void) { TcxGroupBox::Paint(); } //--------------------------------------------------------------------------- void __fastcall TcxGroupBoxEx::PaintWindow(HDC DC) { TcxGroupBox::PaintWindow(DC); } //--------------------------------------------------------------------------- namespace Cxgroupboxex { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TcxGroupBoxEx)}; RegisterComponents("Samples", classes, 0); } } //---------------------------------------------------------------------------
回复
老小笨鸟 2013-07-15
头文件: //--------------------------------------------------------------------------- #ifndef cxGroupBoxExH #define cxGroupBoxExH //--------------------------------------------------------------------------- #include <SysUtils.hpp> #include <Classes.hpp> #include "cxContainer.hpp" #include "cxControls.hpp" #include "cxEdit.hpp" #include "cxGroupBox.hpp" #include <Controls.hpp> //#define HDC unsigned int //--------------------------------------------------------------------------- class PACKAGE TcxGroupBoxEx : public TcxGroupBox { private: protected: virtual void __fastcall CreateWnd(); virtual void __fastcall Paint(void); virtual void __fastcall PaintWindow(HDC DC); public: __fastcall TcxGroupBoxEx(TComponent* Owner); __published: }; //--------------------------------------------------------------------------- #endif
回复
ccrun.com 2013-07-12
如果还不行,试着从工程选项中将 NO_STRICT 字样删除。
回复
ccrun.com 2013-07-12
试试在:
#include <vcl.h>
#pragma hdrstop
代码以后加入一行:
#define HDC unsigned int
回复
缘中人 2013-07-12
这个函数哪来的,有没有定义或者实现的代码
回复
发帖
VCL组件使用和开发
创建于2007-08-02

586

社区成员

C++ Builder VCL组件使用和开发
申请成为版主
帖子事件
创建了帖子
2013-07-12 05:11
社区公告
暂无公告