Это сделано в InitInstance
?
Да, вы можете использовать ParseCommandLine
или обработать m_lpCmdLine
напрямую.
Сделал ли пользователь дважды щелкните файл?
Это действительно важно? Об этом сказать сложнее. Если приложение было запущено (скажем) ассоциацией AB C, возможно, пользователь дважды щелкнул файл AB C, но также может быть, что они запустили пакетный файл, который выполнил start somefile.ABC
, или что-нибудь еще, что в конечном итоге разрешилось в ShellExecute[Ex]
с файлом AB C.
Был ли это файл SRR или MWB?
Предполагая, что это зарегистрированные расширения , они будут частью полного имени файла (имя + расширение), полученного в m_lpCmdLine
. Для одного файла имя файла также будет в CCommandLineInfo::m_strFileName
, если был вызван CWinApp::ParseCommandLine
.
Затем отправьте / кешируйте сообщение в m_pMainDlg, чтобы он открыл указанный файл в соответствующем редакторе .
Из InitInstance
вы обычно передаете имя файла (имена) конструктору диалогового окна, а сам диалог позже отправит сообщение в конце OnInitDialog
, когда все будет в место.