メニューでShiftを押しながらクリックしたことを判断する方法は?

解決


ノボル  2006-11-17 18:11:06  No: 23965  IP: 192.*.*.*

メニューの項目がShift(あるいはCtrlやAlt)を押しながらクリックされたことを判断する方法はありますか。

いつも質問ばかりで恐縮ですが、よろしくお願いします。

編集 削除
うんと  2006-11-17 18:45:37  No: 23966  IP: 192.*.*.*

こんな感じです。

function KeyPushingTest(virtualkey: integer): Boolean;
begin
  result := (GetAsyncKeyState(virtualkey) and $8000) <> 0;
end;

procedure TForm1.Test1Click(Sender: TObject);
begin
  if KeyPushingTest(VK_SHIFT)
  then
    ShowMessage('you are pushing SHIFT key!')
  else
  if KeyPushingTest(VK_CONTROL)
  then
    ShowMessage('you are pushing CTRL key!')
  else
  if KeyPushingTest(VK_MENU)
  then
    ShowMessage('you are pushing ALT key!');
end;

編集 削除
ノボル  2006-11-18 01:36:03  No: 23967  IP: 192.*.*.*

素晴らしい!!うんとさん、ありがとうございました。
メッセージを処理しなければいけないのかなぁ、と思っていたのですが、こんなAPIがあるんですね。

本当にありがとうございました。

編集 削除