All components accept all messages, but if a component have no assigned message handler, it just does nothing
如果你想发现,如果《维也纳条约法公约》部分有特殊手提某些Windows信息,那么你就必须研究《维也纳条约法公约》的渊源,这些来源通常为C++Builder(除了XE和XE2的首版)。
VCL 来源于%CBuilderDir%SourcesVCL(见我的CBuilder5/6)。
来源在德尔菲中书写,但很难找到我们所需要的一切。
首先,你们不得不找到目标阶层的界定。 你们可以通过整个《维也纳条约法公约》源地寻找档案,看像样。
<>> TMemo = 类别(例如,通过TMemo)。
公开档案,在你找到一组程序之前,就与班级定义保持一致,并稍微缩小。
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN;
...... 这些程序是根据某些信息提出的,这些信息是在程序定义之后提供的。
如果某类人有某些信息的程序,则会对此作出某些答复。
信息处理器在德尔菲中继承,因此,如果你发现你的电文是手,你可以看一看基级及其信息处理器。 为了发现全等级等级,你可以简单地研究帮助档案,或再次研究班级定义<代码>。 TMemo = 班级(TCustomMemo),并从制片中选取母级名称。
然后,你可以重复寻找所有家长班的电文,直到你达到<条码>>。
顺便提一下。 Simpy searching through VCL sources dir of my CBuilder5 for any preense of EM_LINESCROLL
我不了解《维也纳条约法公约》的内容。
如果你只需要为某些信息提供特别互动,如果某一组成部分已经或没有信息处理员,那么你就能够简单地超越其组成部分的<条码>。 <代码>TControl的所有后代都有这一方法。
这种方法处理按构成部分收到的所有信息,并且可以在此补充系统或用户信息。
void __fastcall TMyForm::NewWndProc(Messages::TMessage &Message)
{
if (Message.Msg == EM_LINESCROLL)
// Do something special for this message
else OldWndProc(Message);
}
Only thing that you ll need to do is to preserve value of old WindowProc, to call it in NewWndProc after you do all your stuff.
更好地界定和分配<代码>NewWndProc,并储存原有的<代码>WindowProc>/code>,使TMemo能保持其成分,因此,你向我发出从中产生新继承成分的信号。 TMemo
。 因此,界定了“TWndMethod AgeWndProc,其形式如下:OnCreate(
.
TWndMethod OldWndProc = MyMemo->WindowProc;
MyMemo->WindowProc = NewWndProc;
你们也可以通过不向老年妇女传递某些信息,防止向预先确定的人开枪。 如果你阻止处理敏感系统信息(如WM_CREATE),你就会发现错误。