一応CreateWindowで大きなWindowは表示させてはいますが、その上で
・ スペースキーを押されている時のみ、プログラムを止める(EXIT(4)かなんかで)
ようにするには
どうすればよいのでしょうか?
・ コントロールキーを押されている時のみ、プログラムを止めるようにするには
どうすればよいのでしょうか?
・ いかなるキーを押されている時にプログラムをとめるようにするには
どうしたらいいのでしょうか?
・ それらの実現は、デバッグモードでも可能でしょうか?
(組み方が悪いのかもしれませんが、いつも、0が帰って来るような)
こんな感じで。(スペル違うけど、GetKeyboardState()の事だよね?)
BYTE keybuf[256];
GetKeyboardState(keybuf);
if(keybuf[VK_CONTROL] & 0x80) // Control押されてる
プログラムを止めるというのはSuspendThread()かな。(EXIT(4)って何?)
これらはデバッグモードでも可能です。
ありがとうございます。
さっそくやってみました。
VK_CONTROLが見つからないと言うことで、
無反応です。
何かINCLUDEするものはありますか。
また、キーの場合であなくて、MOUSEをクリックした場合に
反応させるのはどうなるのでしょうか?
ちなみにexit()は、プロセスそのものを終了する関数です。
>VK_CONTROLが見つからないと言うことで、
>無反応です。
>何かINCLUDEするものはありますか。
Windows.hをインクルードしてあればOKなはずですが、
綴りを間違えていないですか?
>また、キーの場合であなくて、MOUSEをクリックした場合に
>反応させるのはどうなるのでしょうか?
ウィンドウにWM_LBUTTONDOWNメッセージとかが来ますよ。
> ちなみにexit()は、プロセスそのものを終了する関数です。
それは分かりますがプログラムを止めるっていうのはプロセスを終了させるって事なの
でしょうか?
押されている時のみ止めるというので、てっきりキーを離したら再開させたいのかと思っ
た。
window.hをインクルードしてないという事はひょっとしてコンソールアプリとか?
環境等は必ず示して欲しいです。
CreateWindowしてるって事はコンソールアプリじゃなさそうですね。
失礼しました。
nさんのおっしゃる通り綴りミスでしょう。
マウスは左クリックはWM_LBUTTONDOWN、右クリックはWM_RBUTTONDOWNが飛んできます。
すみません。
VC++6のMFCも使うユーザーで
環境は、ConsoleではなくWindows下、ヘッダーの方は、windows.hも指定しています。
確かに、私のやりたい方は、一時停止ではなくて、永久に
プログラムから抜けてしまうことですが、
VK_CONTROLの方は、スペルは間違ってはいないものの、
今確認してみましたが、VK_F12に書き直してみると、
一時停止出来ました。
当面、デバッグモードで走って、F12キーで止めてもらい。
抜けてもらおうかと。(実行モードだと、停止した状態から、
抜けるのには、往生するので)
すみません。
VC++6のMFCも使うユーザーで
環境は、ConsoleではなくWindows下、ヘッダーの方は、windows.hも指定しています。
確かに、私のやりたい方は、一時停止ではなくて、永久に
プログラムから抜けてしまうことですが、
VK_CONTROLの方は、スペルは間違ってはいないものの、
今確認してみましたが、VK_F12に書き直してみると、
一時停止出来ました。
当面、デバッグモードで走って、F12キーで止めてもらい。
抜けてもらおうかと。(実行モードだと、停止した状態から、
抜けるのには、往生するので)
なんでVK_CONTROLがダメなのか分かりませんが、VK_CONTROLは0x11となっています。
ちなみに左右のキーを区別するのならVK_RCONTROL(0xA2)、VK_LCONTROL(0xA3)です。
これらで試してみてはいかがでしょうか?
F12キーというのはもしかして、プログラムが自分で止まっているんじゃなくて、
デバッガに止めてもらっているんじゃないでしょうか。
てことはGetKeyboardStateを呼び出す部分のコードが実行されていない可能性が…