Создание окон в среде MFC

312
19 декабря 2016, 20:13

Продолжаю разбираться в MFC...

  • Если не сложно объясните в чём особенность, преимущества создания окна в следующих способах:

1)

  void CMy354App::OnButton32771() 
  {
      CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
      pFrame->CreateNewChild(RUNTIME_CLASS(CNewChild), IDR_MY354TYPE, NULL, NULL);
  }

2)

  void CMy354App::OnButton32771() 
  {
          CNewChild *pFrame=new CNewChild;
          pFrame->LoadFrame(IDR_MY354TYPE);
  }
  • Если во втором случае окну послать сообщение WM_CLOSE, объект класса будет удалён из системы и выделенная память будет автоматически высвобождена?

  • DECLARE_DYNCREATE - MSDN пишет:

The framework uses this ability to create new objects dynamically. For example, the new view created when you open a new document. Document, view, and frame classes should support dynamic creation because the framework needs to create them dynamically.

А я разве не динамически создаю объект оператором new без всяких DECLARE_DYNCREATE ?

Answer 1

C) Посмотрите как описан макрос DECLARE_DYNCREATE. Он создает статический метод CreateObject. А его имплементация - IMPLEMENT_DYNCREATE. При new CNewChild вы явно указываете тип.

READ ALSO
G++ для linux: исходный код

G++ для linux: исходный код

Никак не могу найти исходный код g++ для linuxМне нужен именно исходный код

314
std::sort не работает для std::list

std::sort не работает для std::list

error C2784: '_RanIt1::difference_type std::operator -(std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)' : could not deduce template argument for 'std::move_iterator<_RanIt> &' from 'std::_List_iterator<_Mylist>'

324
Простейший IMAP клиент на winsock C++

Простейший IMAP клиент на winsock C++

Добрый день, в общем нужно сделать простейший IMAP клиент на сокетах

463
Округление до N знаков после запятой в с++

Округление до N знаков после запятой в с++

есть число типа double, например 464452675

396