Я создаю плагин .net для приложения MFC. Я создал форму с помощью WinForms и .net4. Форма отображается после нажатия пользователем кнопки в приложении MFC. Один из моих элементов управления использует Application.Idle для выполнения некоторых задач.Почему Application.Idle никогда не запускается, когда моя форма размещается в приложении MFC?
Проблема в том, что приложение Application.Idle никогда не запускается.
- В чем именно заключается «применение» в этом сценарии? Это все приложение MFC или форма .net?
- Почему нет применения.Изда огня?
UPDATE
мне удалось заставить его работать, здесь возможны два решения:
- показать форму с помощью Form.ShowDialog() (таким образом, форма запускает свой собственный .net сообщение насос)
- создать поток STA, создать форму в потоке STA и вызвать Application.Run(). Затем вы можете использовать Form.Show() (форма использует насос сообщения .net в потоке, который был создан, в данном случае: .net STA thread)
Я только узнал, что если моя форма показана с помощью ShowDialog(), все работает! Итак, что делает «Form.ShowDialog()»? Это заставляет приложение накачивать контур сообщения в форме .net? –
ShowDialog показывает цикл сообщений. Сделать диалог модальным. Цикл сообщений Winforms. –
@AZ. он может «работать» в том смысле, что Idle уволен, но бездействие, вызвавшее событие, не имеет ничего общего с Idleness в вашем основном приложении MFC. –