DOBON.NETプログラミング掲示板過去ログ
VS2010でのCFileDialog
題名: VS2010でのCFileDialog
著者: TOSHI
日時: 2014/05/26 10:57:13
ID: 32373
この記事の返信元:
(なし)
この記事への返信:
[32376]
Re[1]: VS2010でのCFileDialog
Azulean
2014/05/31 19:00:01
ツリーを表示
環境/言語:[環境(Windows7 SP1 64bit)、使用言語(VS2010 VC++)]
分類:[その他]
CFileDialogでVistaStyleをTRUEにし、初期表示フォルダをネットワーク「::{208D2C60-3AEA-1069-A2D7-08002B30309D}」とすると、表示時にネットワークフォルダが表示されます。
でも、VistaStyleをFALSEにすると、正しく表示されません。
できれば、VistaStyleをFALSEにしたまま、初期フォルダでネットワークを表示したいのですが、その方法がわかりません。
教えてください。
できないのであれば、その理由も教えてください。
よろしくお願いします。
CFileDialog dlg( FALSE, L"*.txt", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
L"Text Files(*.txt)|*.txt|All Files(*.*)|*.*||",
NULL, 0, FALSE
);
dlg.m_ofn.lpstrInitialDir = L"::{208D2C60-3AEA-1069-A2D7-08002B30309D}";
dlg.DoModal();
題名: Re[1]: VS2010でのCFileDialog
著者: Azulean
日時: 2014/05/31 19:00:01
ID: 32376
この記事の返信元:
[32373]
VS2010でのCFileDialog
TOSHI
2014/05/26 10:57:13
この記事への返信:
(なし)
ツリーを表示
回答ではありませんが、コメントがつかないようなので意見を述べさせてください。
■No32373に返信(TOSHIさんの記事)
> CFileDialogでVistaStyleをTRUEにし、初期表示フォルダをネットワーク「::{208D2C60-3AEA-1069-A2D7-08002B30309D}」とすると、表示時にネットワークフォルダが表示されます。
> でも、VistaStyleをFALSEにすると、正しく表示されません。
手元の Windows 8.1 でも同様でした。
> できないのであれば、その理由も教えてください。
仮にこの挙動が Windows の仕様だとすれば、Microsoft の人にしか、その理由を答えることができません。
「理由を教えてください」と書かれても、答えを得ることは難しいでしょう。
どうしても実現を考えたい場合、無理なら無理というエビデンスを得たい場合は、Microsoft の有償サポートに聞いていただいた方が早く済むかと思われます。
なお、GetOpenFileName は Windows 7 から lpstrInitialDir を無視することがあるアルゴリズムが変更されています。
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms646839(v=vs.85).aspx
仮にネットワークフォルダーを指定する方法を見つけられたとしても、そのパスをずっと初期ディレクトリに指定していると、2 回目以降は前回使ったフォルダーが優先されてしまいます。
故に無理に頑張らない方がよいのではないか?と思いました。
(これはあくまで個人的に意見に過ぎませんので、取り入れられない場合は無視してください)
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[その他]
CFileDialogでVistaStyleをTRUEにし、初期表示フォルダをネットワーク「::{208D2C60-3AEA-1069-A2D7-08002B30309D}」とすると、表示時にネットワークフォルダが表示されます。
でも、VistaStyleをFALSEにすると、正しく表示されません。
できれば、VistaStyleをFALSEにしたまま、初期フォルダでネットワークを表示したいのですが、その方法がわかりません。
教えてください。
できないのであれば、その理由も教えてください。
よろしくお願いします。
CFileDialog dlg( FALSE, L"*.txt", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
L"Text Files(*.txt)|*.txt|All Files(*.*)|*.*||",
NULL, 0, FALSE
);
dlg.m_ofn.lpstrInitialDir = L"::{208D2C60-3AEA-1069-A2D7-08002B30309D}";
dlg.DoModal();