Vivek Kumar
Vivek Kumar

Reputation: 5050

Generating event in MFC

How can we generate event, so that the framework will invoke its message handler OnSize() function in MFC at the instance at which I need.

Thanks

Upvotes: 1

Views: 1990

Answers (4)

RonTLV
RonTLV

Reputation: 2576

To be more general, the way to synthesize events in MFC is by using SendInputfunction:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx

Upvotes: 0

JohnCz
JohnCz

Reputation: 1609

I am very often repeating this statement: Windows is not an event driven system; hence, you do not generate events. Event in Windows is an entity used to synchronize threads.

Each window works by processing messages from the system or application and acting accordingly. They can be predefined messages or message defined specifically for the application.

I respectfully but strongly disagree with previous posts. Even though information was given with good intentions, it shows a bad programming practice.

You should never use Send/Postmessage to change windows size. Use windows API: MoveWindow or SetWindowPos. This will send WM_SIZE (and other companion messages) to the window to notify about size change request.

In general:

Never send or post messages that are generate by the system, since this does not work in most cases because system usually generates additional messages that you do not send, causing unexpected behavior.

Upvotes: 4

Jeeva
Jeeva

Reputation: 4663

Use SendMessage or PostMessage functions and send WM_SIZE message

Upvotes: 4

Sanja Melnichuk
Sanja Melnichuk

Reputation: 3505

You can use SendMessage function, something like this:

SetWindowPos (NULL, 0,0, myrect. Height (), myrect. Width (), SWP_FRAMECHANGED|SWP_NOZORDER);

Upvotes: 1

Related Questions