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

老小笨鸟 2013-07-12 05:11:08
如题,生成一个package后,什么也不加,编译报错,说PaintWindow找不到,[Linker Error] Unresolved external '__fastcall Cxcontrols::TcxControl::PaintWindow(void *)' referenced from path\CXGROUPBOXEX.OBJ,这个是怎么回事,请大拿解惑
...全文
933 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老小笨鸟 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
  • 打赏
  • 举报
回复
这个函数哪来的,有没有定义或者实现的代码

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧