首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个C++Bulider 消息过程处理WndProc的有关问题

2013-06-25 
一个C++Bulider 消息过程处理WndProc的问题TForm类继承于TCustomForm类。在TCustomForm类中,WndProc是一个P

一个C++Bulider 消息过程处理WndProc的问题
TForm类继承于TCustomForm类。在TCustomForm类中,WndProc是一个Protected的Virtual函数。TForm类中未有另外实现WndProc。TForm1类(也就是我们创建新的工程时默认生成的)继承于TForm类。

好了,问题就来了,当我在TForm1中重新实现WndProc时,编译提示在Obj中已经有了这个WndProc。
而且我在TForm1的实例Form1中通过TCustomForm::WndProc调用时,提示TCustomForm::WndProc是不可见的,不是说好了Protected可以在子类中被访问吗。
那么,我如果自己重现WndProc处理一些特定的消息过后,其它的消息我应该传给谁去处理呢?我看到很多书上有写着是TForm::WndProc。而这里编译时实际上指向了TCustomForm::WndProc,提示不可见,不能调用。 BCB? 类 继承 WndProc 消息
[解决办法]
TForm1是直接父继承与TForm,不是TCustomForm

方法三 重载 WndProc

private: // User declarations
     void __fastcall WndProc(Messages::TMessage &Message);

 

void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
 
      Caption = Now();
    
    TForm::WndProc(Message);
}

[解决办法]

void __fastcall WndProc(TMessage& Message)

改为:

void __fastcall TForm1::WndProc(TMessage& Message)

  

热点排行