Re: Need help resolving modeless dialog issue
Thank you. The problem is still there, but what you've said does make
sense. I've switched to the way you suggest, and moved my local
definitions to the OnInitDialog, since the window doesn't exist in the
constructor anymore.
The reason why I did it that way? The example I used to do a modeless
dialog did it that way. I'm not a windows coder, I'm a c++ coder, so
I followed the example and it worked, *shrug*. That second show
window was redundant, on purpose. I was trying to force the window to
show and return an error, but no luck there.
Hopefully, this is much closer to being correct:
void CMainFrame::OnOpenProgBuilder()
{
CPrgEditorDialog* dlg = new CPrgEditorDialog;
dlg->Create(CPrgEditorDialog::IDD, this);
dlg->ShowWindow(SW_SHOW);
}
CPrgEditorDialog::CPrgEditorDialog(CWnd* pParent )
: CDialog(CPrgEditorDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CPrgEditorDialog)
m_csListCommands = _T("");
m_csListModels = _T("");
m_csListVariables = _T("");
m_csLblCommands = _T("");
m_csLblVariables = _T("");
m_InsertionEditString = _T("");
//}}AFX_DATA_INIT
AfxInitRichEdit();
//DragAcceptFiles(true);
}
BOOL CPrgEditorDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// my local variable declarations. ~ 400 lines worth.
return TRUE; // return TRUE unless you set the focus to a
control
// EXCEPTION: OCX Property Pages should return FALSE
}
My problem still exists, and I thank you for helping me get the window
creation adjusted. As to your comment, Joseph, you HAVE seen the code
pertaining to opening the window a second time. It runs the same
code. It does nothing different (except that, obviously, it is). I
placed a message box in the PostNCDestroy and it is not recieving a
termination signal there until I manually close it. However, at the
same time, I realized that despite there being no memory leaks in the
program, closing the window via the windows titlebar doesn't call
this, so it is still possible the window is recieving a close signal,
and I'll see if I can't hunt that down.