Re: writing to gui from thread
I think that the AfxGetMainWnd() in the thread cause the asserttion. Because
the main window associated with the thread maybe different with the
application main window. you can use AfxGetApp()->m_pMainWnd to instead of
the AfxGetMainWnd().
"kunal s patel" <kunalspatel@discussions.microsoft.com> ????????????:009D9EA4-71B6-4DFB-91F7-9A18E36092FC@microsoft.com...
Hi all,
Here is a part of code:
#include "maindlg.h"
UINT MyThread(LPVOID obj); //thread function definition
class Cmaindlg
{
//this is the class of main gui with a listbox
CListbox m_listbox;
};
#include "sim.h"
#include "maindlg.h"
class sim
{
//another file
void proc(); //this function access the gui
void run();
}
Now when someone press a button in maindlg application i spawn a thread
like this:
UINT MyThread(LPVOID obj)
{
sim s;
s.proc();
}
The function proc is defined as
void sim::proc()
{
Cmaindlg* pmain = (Cmaindlg*) AfxGetMainWnd();
pmain->m_listbox.AddString("Hi");
}
Now when i try to run this application, i get an assertion error. I am not
able to understand what is going wrong. Can anyone explain me the way out
of
it. Basically i want to access the gui objects from thread.
thanks
kunal