定义了一个全局的非模式对话框:
CSysInfoDlg *gSysInfoDlg;
在主线程中用下列语句正常显示:
gSysInfoDlg = new CSysInfoDlg(CString str); //我重载了构造函数
gSysInfoDlg->Create(); //我重载了Create()函数
gSysInfoDlg->ShowWindow(SW_SHOW);
但是把这几行语句照搬到一个线程当中时执行出错
线程函数如下:DWORD WINAPI ShowSysInfoDlg(LPVOID pParam)
{
gSysInfoDlg = new CSysInfoDlg("hello");
gSysInfoDlg->Create();
gSysInfoDlg->ShowWindow(SW_SHOW);
return 1;
}出错语句是gSysInfoDlg->Create();这是为什么,应该如何解决?
CSysInfoDlg *gSysInfoDlg;
在主线程中用下列语句正常显示:
gSysInfoDlg = new CSysInfoDlg(CString str); //我重载了构造函数
gSysInfoDlg->Create(); //我重载了Create()函数
gSysInfoDlg->ShowWindow(SW_SHOW);
但是把这几行语句照搬到一个线程当中时执行出错
线程函数如下:DWORD WINAPI ShowSysInfoDlg(LPVOID pParam)
{
gSysInfoDlg = new CSysInfoDlg("hello");
gSysInfoDlg->Create();
gSysInfoDlg->ShowWindow(SW_SHOW);
return 1;
}出错语句是gSysInfoDlg->Create();这是为什么,应该如何解决?
{
m_SysInfo = str;}BOOL CSysInfoDlg::Create()
{
return CDialog::Create(CSysInfoDlg::IDD);
}
1。不要重载Create,gSysInfoDlg->Create(CSysInfoDlg::IDD);
2。给对话框一个父窗口,gSysInfoDlg->Create(CSysInfoDlg::IDD,afxGetApp()->GetMainWnd());只能试试看了。。