電子書籍の厳選無料作品が豊富!

目的のディレクトリがなくてもダイアログ内でディレクトリを作ることができません。
ディレクトリを選択するコモンダイアログで目的のディレクトリが無ければダイアログ内でディレクトリを作ることができるコモンダイアログというものは有るのでしょうか?

A 回答 (5件)

>とすればCOMの初期化はなされたといえるのでしょうか?


>そうでなければどうしたらCOMの初期化はできるのでしょうか?

COMの初期化とは、COMを使う前に、そのスレッドの中でCoInitialize()をコールすることです。
で、スレッドが終了する前に、CoUninitialize()をコール
します。

>既存のキャンセルボタンとOKボタンとツリービューのハンドルを知りたいのですが知る方法はありますか?

今回の事をするにあたり、コントロールのウィンドウハンドルを取得する前に、ボタン等のコントロールIDを知っておいた方がいいですよ。

コントロールIDは固定なので、毎回ウィンドウハンドルを検索するようなロジックは不要になります。

コントロールIDは、VisualStadioをお持ちでしたら、spy++というツールで調べられるんですがね。

なければ、しょうがないんで、取得用のプログラムを作ってあげることになるのかな?

具体的には、ダイアログのウィンドウハンドルを取得して、EnumChildWindowで子ウィンドウを列挙し、
キャプション文字列や、クラス名を取得して該当のウィンドウのハンドルがわかれば
GetDlgCtrlIDでコントロールIDを取得できると思います。

で、プログラムの中でウィンドウハンドルが必要になったらGetDlgItemで取得します。

ちなみにOKボタンは0x0001、TreeViewは0x3741、キャンセルボタンは0x0002でした。(Windows2000で確認)
    • good
    • 0
この回答へのお礼

ありがとうございます。
素性の分からないボタン2つをenumでカットして
新たにボタン等を配置することで決着しました。
そのためにダイアログウィンドウの半分より下の子ウィンドウをすべて除去し(rt.topを使う)除去したあたりに新たに追加コントロールを配置しました。
孫ウィンドウを殺さないように親もチェックです。

お礼日時:2003/08/09 05:42

>SHBrowseForFolderはコモンダイアログでないみたいですがコモンと同じようにカスタマイズできるのでしょうか?



出来ますよ。
フックプロシージャがあったり、サブクラス化が出来るものは大抵のことが出来ます。

なくても他の方法で工夫次第で可能です。
がんばってみてください。

有名どころのフリーソフトでは、Lhasaのインストーラが独自のボタンをつけてますし。
http://www.forest.impress.co.jp/library/lhasa.html

この回答への補足

ありがとうございます。

この問題で悩んでいる人は多いみたいですね。
bi.lpfn=SHBProc;
bi.lParam=(LPARAM)"C:\\";
として
int CALLBACK SHBProc(HWND hW,UINT
msg,LPARAM,LPARAM lp)
{
switch (msg)
{
case BFFM_INITIALIZED:
SendMessage(hW,BFFM_SETSELECTION,1,lp);
return 0;
}
return 0;
}
とすればCOMの初期化はなされたといえるのでしょうか?
そうでなければどうしたらCOMの初期化はできるのでしょうか?

補足日時:2003/08/08 05:39
    • good
    • 0
この回答へのお礼

なかなか気が進まなかったのですがとうとうサブクラス化してしまいました。
ボタンを置く位置を決めるために
既存のキャンセルボタンとOKボタンとツリービューのハンドルを知りたいのですが知る方法はありますか?

お礼日時:2003/08/08 09:54

http://yokohama.cool.ne.jp/chokuto/urawaza/struc …

Win2000以降でしたらBIF_USENEWUIで出てくるそうです。

参考URL:http://yokohama.cool.ne.jp/chokuto/urawaza/struc …
    • good
    • 0
この回答へのお礼

ありがとうございます。
GetOpenFileNameはファイルでありディレクトリではないので使えないのが残念です。
それに2000でないからBIF_USENEWUIも使えません。
SHBrowseForFolderはコモンダイアログでないみたいですがコモンと同じようにカスタマイズできるのでしょうか?

お礼日時:2003/08/07 23:32

こんな感じの事をする必要があります。



http://hp.vector.co.jp/authors/VA016117/esccd.html

コモンダイアログ ボタン 追加
なんてキーワードで検索すればごろごろ出てくるでしょう。

参考URL:http://hp.vector.co.jp/authors/VA016117/esccd.html
    • good
    • 0

BIF_USENEWUIフラグを指定した場合はどうでしょうか? また、GetOpenFileName()やGetSaveFileName()を使うという手もあります。



参考URL:http://yokohama.cool.ne.jp/chokuto/urawaza/api/S …

この回答への補足

ありがとうございます。
98seでも使えるのでしょうか?

補足日時:2003/08/07 09:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!