SHFileOperationのファイルの上書きコピーなんですが
デフォルトでは上書しますか? はい(Y) にフォーカスがあたってます。
このフォーカスをいいえ(N)に移動させてやりたいのです。
アドバイス宜しくお願い致します。
環境 XP, C++Builder
>C++Builder
ここは、「VC++」ラウンジ ですよ?
申し訳ございません。
WIN32API関数だから
VC++でもC++Buiderでもたいして変わらないと思い
質問してしまいました。
いやいや、C++ Builder 固有のライブラリの話題ならともかくとしても、
Win32 API の話ならどっちでも変わんないでしょうし、C++ Builder 専門の
掲示板を探せってのも酷な話じゃないですかね。
本題には答えられないで申し訳ないですが。
# フックのような泥臭い方法なら可能かもしれませんが…
SHFileOperation()にはデフォルトボタンのオプションが見当たらないので
おそらく無理な気がします。
もし無理矢理やるとするなら、例えば、
1. SHFileOperation()の直前にタイマを起動
2. OnTimer()で上書き確認ダイアログのウィンドウを取得
3. 更に、はい(&Y)といいえ(&N)ボタンのウィンドウを取得
4. 「はい」ボタンからBS_DEFPUSHBUTTONスタイルを除去
5. 「いいえ」ボタンにBS_DEFPUSHBUTTONスタイルを付加してフォーカス設定
て感じでしょうか。使用するAPIとしては、
SetTimer()
KillTimer()
FindWindowEx()
GetWindowLong()
SetWindowLong()
SetFocus()
辺りで。はずしてたらスイマセン^^;
シャノン様FUKU様
アドバイス有難うございます。
フックにせよウィンドハンドルにせよ
ちょっと私には時間がかかりそうなので
自前でファイルの有無をチェックし上書きする/しないを警告する画面を表示する事で
撮り合えず回避する事にしました。
余裕があれば上記の方法で取組んでみたいと思います。