У меня есть следующий сценарий:
- У меня есть класс CDialog, который содержит два элемента управления EditBox, скажем, это IDC_EB1 и IDC_EB2.
- Я хочу иметь возможностьпрослушайте событие двойного щелчка на IDC_EB1 и IDC_EB2, чтобы открыть FileDialog и отобразить выбранное местоположение файла на IDC_EB1 и IDC_EB1.
- IDC_EB1 и IDC_EB2 выполняют через механизм управления DDX и сохраняют в своих соответствующих переменных-членах.
- Тип переменных-членов имеет CMyEdit (производный от CEdit) для обработки события двойного щелчка.
Диалог запускается, и я смог открыть FileDialog, когда я дваждынажмите на IDC_EB1 или IDC_EB2 для просмотра.Проблема в CMyEdit, я больше не знаю, какой EditBox вызвал событие двойного щелчка, чтобы отобразить путь к файлу, выбранный из FileDialog.
Что может быть хорошим способом решения этой проблемы?Я использую Visual Studio 2010 с пакетом обновления 1 (SP1).
PS: существует элемент управления MfcEditBrowse, который бы неплохо решил описанную выше проблему, но он мне не подходит, потому что планируется повторно использовать это окно CDialog на различных этапахмоя программа и, очевидно, вы не можете вызывать DoModal более одного раза в диалоге, который имеет элемент управления MfcEditBrowse.элемент управления MfcEditBrowse в этом диалоговом окне выдает ошибку подтверждения (известная проблема, очевидно, согласно тому, что я нашел в документации Microsoft).