0

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:
;
}


}

Edited by happygeek: fixed formatting

2
Contributors
1
Reply
2
Views
10 Years
Discussion Span
Last Post by Ancient Dragon
0

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.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.