• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コモンダイアログのshowopenについて)

コモンダイアログのshowopenの設定方法とアイコンの非表示方法

このQ&Aのポイント
  • コモンダイアログのshowopenを使用してファイルを開くダイアログを表示させる方法について説明します。また、ファイル名をテキストで入力するように設定する方法についても解説します。
  • さらに、コモンダイアログのshowopenで表示されるダイアログに表示される左側のアイコン(「履歴」「デスクトップ」「マイコンピュータ-」「マイネットワーク」)を非表示にする方法についても説明します。
  • これらの設定変更により、より使いやすいファイルを開くダイアログを実現することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>APIはまったく使ったことがなく、よくわかりません。 いきなりこのAPIは結構厳しいかも・・・ >どのDLLを使い、どのようにプログラムを書くのでしょうか?教えていただけると助かります。 順番が違いますね。 DLLを探すではなく、使用API関数を探すのが先です。 APIが見つかったら、どこのDLLのにあるかを探します。 で、ファイルを開くダイアログを表示するには、 GetOpenFileName というAPIを使用します。 詳細は、MSDNを見てください。 とりあえず、APIでファイルを開くコモンダイアログを表示するサンプルです。 http://homepage1.nifty.com/MADIA/vb/API/GetOpenFileName.htm >私はファイル名はテキストでただ入力しかできないよう >にしたいのですが、どのように設定すればよいのでしょうか? こっちはあきらめたほうがいいですよ。 単純にAPIを使うだけではないので。 >それと、左側に「履歴」「デスクトップ」「マイコンピュータ-」 >「マイネッ トワーク」のアイコンが表示されているのですがこれも消したいのです。 こっちなんですが、この左側の部分自体がVB6以降のOSであるWindows2000以降の機能なので、特別な対応が必要です。 urlのところにあるサンプルの中の、OPENFILENAME構造体をWindows2000用に変更する必要があります。 'OPENFILENAME構造体 Public Type OPENFILENAME lStructSize As Long '構造体のサイズ hwndOwner As Long 'ウインドウのハンドル hInstance As Long 'インスタンスハンドル lpstrFilter As String 'フィルター lpstrCustomFilter As String 'カスタムフィルター nMaxCustFilter As Long 'カスタムフィルターのサイズ nFilterIndex As Long 'フィルタのインデックス lpstrFile As String 'ファイル名のバッファ nMaxFile As Long 'ファイル名のバッファのサイズ lpstrFileTitle As String 'フルパス用のバッファ nMaxFileTitle As Long 'フルパス用のバッファのサイズ lpstrInitialDir As String 'ディレクトリを指定 lpstrTitle As String 'ダイヤログボックスのタイトル flags As Long '定数(OFN_××参照) nFileOffset As Integer 'フルパスの中のファイル名までのオフセット nFileExtension As Integer '拡張子までのオフセット lpstrDefExt As String 'デフォルトの拡張子 lCustData As Long 'lpfnHookで渡すデータ lpfnHook As Long 'フック関数のポインタ lpTemplateName As String 'テンプレート名 '---ここから追加--- pvReserved As Long dwReserved As Long FlagsEx As Long '---ここまで追加--- End Type 「ここから追加」から、「ここまで追加」の間の行を追加してください。 あと、 Public Const OFN_EX_NOPLACESBAR = &1 という1行を追加して定数を宣言してください。 で、呼び出すところのEnd Withの前の行に、 .FlagsEx = OFN_EX_NOPLACESBAR と記述すれば左側の部分が消えるはずです。 #このあたりの説明は、#1の参考urlに書いてあります。 理解していただけましたか?

bruce1104
質問者

お礼

回答ありがとうございます。 教えてもらったとうりに書くとできました。 しかもAPI関数をたくさんのせてるサイトまで 教えてもらってさっそくブックマークに追加しました。 ファイル名は今回はあきらめます。 教えてもらったサイトでAPIのことを勉強します。 ありがとうございました。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>私はファイル名はテキストでただ入力しかできないよう >にしたいのですが、どのように設定すればよいのでしょうか? 標準のコモンダイアログのインターフェイスを使うのでしたら不可能です。 #コモンダイアログコントロールではなくWindowsAPIを使用するのでしたら何とかなりますが。 >それと、左側に「履歴」「デスクトップ」「マイコンピュータ-」 >「マイネッ トワーク」のアイコンが表示されているのですがこれも消したいのです。 コモンダイアログコントロールを使用している場合は不可能です。 WindowsAPIを直接使用している場合は可能です。 参考までにWinAPIを使用するときの構造体の設定内容を。 http://yokohama.cool.ne.jp/chokuto/urawaza/struct/OPENFILENAME.html

参考URL:
http://yokohama.cool.ne.jp/chokuto/urawaza/struct/OPENFILENAME.html
bruce1104
質問者

補足

回答ありがとうございます。 APIはまったく使ったことがなく、よくわかりません。 どのDLLを使い、どのようにプログラムを書くのでしょうか?教えていただけると助かります。 少し調べましたがSPIビューアでDeclear宣言を書いてくれるとありますがどのDLLを 選んでよいのかわかりません。

関連するQ&A

専門家に質問してみよう