CFileDialogのカスタマイズについて – プログラミング – Home

CFileDialogのカスタマイズに...
 
通知
すべてクリア

[解決済] CFileDialogのカスタマイズについて


てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

環境 vc6.0 winXP

いつもお世話になっております。
CFileDialogにフックを追加しリストビューのスタイルを変えたいのですが
うまくいきません。
ソースは以下のとおりです

//////////////////////////////////////
//open
CFileDialog dlg(...);
dlg.m_ofn.Flags = |OFN_ENABLEHOOK|OFN_EXPLORER|OFN_HIDEREADONLY;
dlg.m_ofn.lpfnHook = FileDlgHookProc;
....

//////////////////////////////////////
//プロシージャ
static UINT CALLBACK FileDlgHookProc
(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if( (uMsg == WM_SETREDRAW) && (wParam != FALSE) )
{
_AFX_THREAD_STATE* pThreadState=AfxGetThreadState(); //assert
pThreadState->m_pAlternateWndInit=NULL;

HWND hWndParent = ::GetParent(hDlg);
HWND hWndShellDll = ::FindWindowEx(hWndParent, NULL, SHELLDLL_DefView,
NULL);
HWND hWndSysListView = ::FindWindowEx(hWndShellDll, NULL, SysListView32,
NULL);
LONG lTemp = ::GetWindowLong(hWndSysListView, GWL_STYLE);
lTemp &= ~LVS_LIST;
lTemp |= LVS_ICON;

::SetWindowLong(hWndSysListView, GWL_STYLE, lTemp);
return true;
}
return false;
}

疑問なのはwin2000ではうまく動いていてwinXPでは動かないことです。
spyで調べたところウィンドウハンドルは取れていると思います。


引用未解決
トピックタグ
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

レスが付かないようですので
超初心者のHPの方に移行します。

また何かありましたらよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました