TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
bilnaad
NA
686
0
Interop: Windows Message Pump
Oct 14 2004 7:38 PM
I have this main method that contains a loop to retrieve the messages from the messageQueue that the main window is running. If a key is released(KEYUP) on the keyboard the message goes to a function wich responds when a certain key is pressed. If the escape key is released the function post the quit message in the queue (PostQuitMessage(0)). The problem accures when I close the window by pressed the Close button in the controlbox. The "while(MessageQueue.GetMessage(out msg ,form.Handle ,0 ,0))" line gets hilited and the error shows. Cannot access a disposed object named "MainForm" So I suppose the Form is disposed before I can get any message from the queue that tells that the program has ended. Even if I nest the while loop in another while loop with form.Created as condition the error shows. I could nest this loop in a try catch block. But I then I can't debug the application properly. Is there a way around this problem? [STAThread] static void Main() { MSG msg = new MSG(); MainForm form = new MainForm(); form.Show(); while(MessageQueue.GetMessage(out msg ,form.Handle ,0 ,0)) { MessageQueue.TranslateMessage(ref msg); MessageQueue.DispatchMessage(ref msg); switch(msg.message) { case (uint)WM.KEYUP: Functions.CheckKey(ref msg); break; } Application.DoEvents(); } }
Reply
Answers (
0
)
Convert Flat Text file into XML
Help with user inputs for c#