掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CFileDialogで右クリックできないようにするには? (ID:59218)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
右クリックしたとき、エクスプローラ表示を消す方法として、 まずコモンダイアログをフック化してください、 //クラス内のコモンダイアログ CFileDialog *dlgFile; dlgFile = new CFileDialog(TRUE,_T("txt"),_T("*.txt"),OFN_FILEMUSTEXIST, "テキスト(*.txt)|*.txt|""各ファイル(*.*)|*.*" "|"); dlgFile->m_ofn.lpfnHook=OFNHookProc; if(dlgFile->DoModal()==IDOK) { // } delete dlgFile; ///ここまで #define lpNM ((LPNMHDR)lParam) UINT CALLBACK OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ) { _AFX_THREAD_STATE* pThreadState=AfxGetThreadState(); pThreadState->m_pAlternateWndInit=NULL; if(uiMsg==WM_INITDIALOG) { } if(uiMsg==WM_NOTIFY) { switch(lpNM->code) { case CDN_SELCHANGE: //大体ファイル等を右クリックしたときのメッセージ break; } } return(1); } 次にレジストリ(Regedt32.exe または Regedit.exe)の HKEY_CLASSES_ROOT\Folder\shell\explore以降を操作しますので 必ずレジストリの書き出して誤動作時の復旧に通常は使います。 復旧操作により他のファイルのデータを消去してしまうので作業直前に書き出しをしてください。必ず自己責任で、 OSが95や98なら、 RegDeleteKey(HKEY_CLASSES_ROOT, "Folder\\shell\\explore"); をWM_INITDIALOG等に追加すればエクスプローラは表示されません。 NT系ときは、 サブキーを持つキーは消去できないのでキーを消した後に実施してください。 また、RegSaveKey及びRegRestoreKey等を使い復旧作業も忘れずにしてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.