When creating another window in one window:
Ctestdlg *ptd; Header file Definition
CRect RC;
GetWindowRect (&RC);
CRect RC1;
ptd= new Ctestdlg;
Ptd->create (idd_123, this);//The ID of the window
Ptd->getwindowrect (&RC1);
Ptd->movewindow (rc.left+190, rc.top+18, RC1. Width (), RC1. Height ());
Ptd->showwindow (TREU):
The above two sentences are equivalent to Ptd->setwindowpos (null,rc.left+190, rc.top+18, RC1. Width (), RC1. Height (), Swp_hidewindow);
At the end
Delete pTd;
PTd = NULL;
This will appear in the warning:calling DestroyWindow in Cdialog::~cdialog--, correct practice is as follows:
At the end should
if (pTd)
{
Ptd->destorywindow ();
PTd = NULL;
}
Add the following code in the resulting window class
Add Message Postncdestory
void Ctestdlg::P Ostncdestroy ()
{
TODO: Add private code here and/or call base class
Delete this;//this must be
CDialog::P Ostncdestroy ();
}
MFC creates a method to free memory after creating a form using create