はじめて書き込ませていただきます。
現在、マウスを使用しない環境でアプリを開発しているんですが、
あるキーを押したときに、配置されているコマンドボタンをあたかも
マウスでクリックされたときのようにへこます事なんてできるのでしょうか?もちろんへこんだものは戻したいんですけど・・・
基本的には、へこむときをKey_Downイベント、戻すときはKey_Upイベントを使用する事を想定しています。APIかなにかあるのでしょうか?
サンプル
'FormのkeyPreview = Trueにしておく
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'
End Sub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Call Command1_MouseDown(vbLeftButton, Shift, 0, 0)
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Call Command1_MouseUp(vbLeftButton, Shift, 0, 0)
End Sub
あ、勘違いしてました。
キーイベントでボタンの外観をかえたいんですね。
方法1
同じサイズのCommandButtonとListBoxをかさねて置く。
Captionはどちらも""
FormのKeyPreviewをTrueにして、
FormのKeyDownにCommand1.Visible = False,
FormのKeyUpにCommand1.Visible = Trueをかけば、
ボタンがへこんだようにみえる。
Captionが必要なら、Buttonの上にTextBoxをはり、
Text1.BackColor = Command1.BackColor
Text1.BorderStyle = 0 にして、テキストを書いて
位置調整する。
ただし、Mouse Clickの処理が煩雑。
方法2
ボタンを押してない状態と押した状態をキャプチャーして
bmpで保存。
キーイベントでCommand1.Pictureをはりかえる。
これなら、マウスイベントはいつものとおり。
bmpを加工することでボタンの文字色もかえられる。
注:PictureをそのつどLoadPictureすると、
I/Oが発生し、重くなる。
隠れImageBoxか何かに一度取り込んで、
ブロックコピーしたほうがはやい。
Sayさん、お礼が遅れてすみません。
最初のレスだけでこちらのやりたい事のネタは十分に得られました。
MouseDown・MouseUpでボタンがへこんだり、戻ったりするのですね。
ありがとうございました。