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

解決


ノボル  2006-11-18 03:11:06  No: 23965

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

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


うんと  2006-11-18 03:45:37  No: 23966

こんな感じです。

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 10:36:03  No: 23967

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加