SHFileOperationのフォーカス – プログラミング – Home

通知
すべてクリア

SHFileOperationのフォーカス


てっぺい
 てっぺい
(@てっぺい)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

SHFileOperationのファイルの上書きコピーなんですが
デフォルトでは上書しますか? はい(Y) にフォーカスがあたってます。

このフォーカスをいいえ(N)に移動させてやりたいのです。
アドバイス宜しくお願い致します。

環境 XP, C++Builder


引用解決済
トピックタグ
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113
 

>C++Builder

ここは、「VC++」ラウンジ ですよ?


返信引用
てっぺい
 てっぺい
(@てっぺい)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

申し訳ございません。

WIN32API関数だから
VC++でもC++Buiderでもたいして変わらないと思い
質問してしまいました。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

いやいや、C++ Builder 固有のライブラリの話題ならともかくとしても、
Win32 API の話ならどっちでも変わんないでしょうし、C++ Builder 専門の
掲示板を探せってのも酷な話じゃないですかね。

本題には答えられないで申し訳ないですが。
# フックのような泥臭い方法なら可能かもしれませんが…


返信引用
FUKU
 FUKU
(@FUKU)
ゲスト
結合: 17年前
投稿: 73
 

SHFileOperation()にはデフォルトボタンのオプションが見当たらないので
おそらく無理な気がします。

もし無理矢理やるとするなら、例えば、
1. SHFileOperation()の直前にタイマを起動
2. OnTimer()で上書き確認ダイアログのウィンドウを取得
3. 更に、はい(&Y)といいえ(&N)ボタンのウィンドウを取得
4. 「はい」ボタンからBS_DEFPUSHBUTTONスタイルを除去
5. 「いいえ」ボタンにBS_DEFPUSHBUTTONスタイルを付加してフォーカス設定

て感じでしょうか。使用するAPIとしては、
SetTimer()
KillTimer()
FindWindowEx()
GetWindowLong()
SetWindowLong()
SetFocus()
辺りで。はずしてたらスイマセン^^;


返信引用
てっぺい
 てっぺい
(@てっぺい)
ゲスト
結合: 16年前
投稿: 1
 

シャノン様FUKU様
アドバイス有難うございます。

フックにせよウィンドハンドルにせよ
ちょっと私には時間がかかりそうなので
自前でファイルの有無をチェックし上書きする/しないを警告する画面を表示する事で
撮り合えず回避する事にしました。

余裕があれば上記の方法で取組んでみたいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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