カテゴリー
アーカイブ
2021/04/06 / MFC ドキュメントの関連付け への1件のコメント
スケルトン作成時,ファイルの拡張子を指定しなかったプロジェクトに,後から関連付けのコードを追加する手順.
アプリケーションクラスの InitInstance に EnableShellOpen と RegisterShellFileTypes を追加.
BOOL CXxxxApp::InitInstance()
{
// ...
AddDocTemplate(pDocTemplate);
// DDE Execute open を使用可能にします。
EnableShellOpen();
RegisterShellFileTypes(TRUE);
// DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// ...
// メイン ウィンドウが初期化されたので、表示と更新を行います。
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// ドラッグ/ドロップ オープンを許可します
m_pMainWnd->DragAcceptFiles();
return TRUE;
}
必要に応じて,DragAccesptFiles .
リソースの String Table IDR_MAINFRAME で,ファイルタイプと拡張子を指定する.
文字列は 7 つに区切られている.CDocTemplate::GetDocString

最近の Windows は,RegisterShellFileTypes では登録できない.
そのため,自前の RegFileType::SetFileType(TRUE) を呼出す.
RegFType.hxx RegFType.cxx
RegisterShellFileTypes とは違い,HKEY_CURRENT_USER\Software\Classes\ に登録している.
Is this 投稿 useful?
Useful
Useless
0 of 0 people say this 投稿 is useful.