MFC> Соединение диалогового окна к диалоговому классу

( Сопровождающий Spyder здесь ) Чтобы получить то, что вам нужно, вам нужны две вещи:

  1. Удалите или прокомментируйте эту строку в своем коде

    matplotlib.use('Agg')
    
  2. Вам необходимо перейти к этому пункту меню в Spyder

    Tools > Preferences > IPython console > Graphics > Graphics backend

    изменить параметр с именем Backend с Inline на Automatic, и затем перезапустите Spyder.

8
задан Linger 19 July 2012 в 04:05
поделиться

3 ответа

Путем это обычно делается в MFC, должен определить диалоговый шаблон в редакторе ресурса (поскольку Вы сделали), затем в C++ получают класс из CDialog и связывают его с диалоговым шаблоном (который он кажется, что Вы сделали - это не совсем ясно).

Что на самом деле связывается, эти два конструктор для Вашего кода CDialog. При рассмотрении связанного с диалоговым окном кода, автоматически сгенерированного мастером класса MFC Вы будете видеть в реализации конструктора что-то вроде этого:

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg::IDD, pParent)

где CMyDlg:: IDD определяется как перечисление со значением идентификатора Вашего нового диалогового шаблона. Это - это, которое заставляет все это произойти, не объявление перечисления. Вы могли изменить его к

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_NEW_DIALOG, pParent)

и это будет все еще работать (предполагающий, что IDD_NEW_DIALOG является шаблонным идентификатором Вашего диалогового окна в ресурсах), как все, что это происходит, диалоговый идентификатор, передается в конструктора.

В целом всегда стоит помнить, что, несмотря на начальные появления, MFC не связывает с Windows через биты волшебства компилятора - это все сделано с C++ и некоторыми макросы.

Править: DIALOGEX и ДИАЛОГОВОЕ ОКНО объявляют немного диалоговые форматы ресурса различия, которые понимает Windows: первый является более новым, чем последний. Однако оба были вокруг с тех пор, по крайней мере, Windows 95, таким образом, это не очень значительное различие.

14
ответ дан 5 December 2019 в 11:28
поделиться

Это - все, что необходимо, когда Вы создаете диалоговое окно через диалоговый класс (DoModal(), или Create для немодального диалогового окна), который является нормальным способом пойти.

Конечно, необходимо наследоваться CDialog и добавить карту отображения сообщений для маршрутизации сообщений к ewvent функциям-обработчикам.

1
ответ дан 5 December 2019 в 11:28
поделиться

Используйте мастер класса для создания класса для недавно созданного диалогового окна. ctrl+w является сочетанием клавиш от представления ресурса UI.

0
ответ дан 5 December 2019 в 11:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: