I design a form in C++ Builder 2006, and i want to handle WM_NCPAINT message by my own function (void RedrawCaption(TMessage & msg);). After handle this message i have to call the default message handler of the form. But i fail to find out the default handling function. Could you help me to find the default handling function of WM_NCPAINT? (In Delphi, i found that it is very easy to do that with "inherited" keyword, in C++ Builder it sound a trouble)
Here is my code

class TfmZ1 : public TForm
{
....
protected:
void RedrawCaption(TMessage & msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_NCPAINT,TMessage,RedrawCaption);
END_MESSAGE_MAP(TForm);
}
......
void TfmZ1::RedrawCaption(TMessage & msg)
{
bool fActive;// here is the place i want call the default handler, but i don't   know how to call it


switch (msg.Msg) {
case WM_NCPAINT:
fActive = GetActiveWindow();
DrawCaption(fActive);
break;
case WM_NCACTIVATE:
fActive = (msg.WParam!=0);
DrawCaption(fActive);
break;
default:
;
}


}

Your function should return an int, not void. If you want the default windows message handler to also process the message then your function should return 1. Otherwise if you do NOT want this to happen your function should return 0. See here.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.