Every time you enter OnTimer you create a new ClsWindow and in case flag == false you destroy it. The pointer to the window you want to close was already lost after creation when leaving the OnTimer handler.
A property for
ClsWindow *m_pWindow
needs to be defined at class level and don't just overwrite it when entering the OnTimer.
OnTimer:
{
if(Aflag == true)
{
m_pWindow = new ClsWindow;
m_pWindow ->Create(ClsWindow::IDD)
m_pWindow->ShowWindow(SW_SHOW)
} else
{
m_pWindow->DestroyWindow()
}
}
Good luck!