チュートリアル6


英語版→http://members.a1.net/ranmasaotome/tut6.html

TabIndex, Hotkeys and Accelerators


TabIndex:

 Step1:
 ここでは、動く TABINDEX を、作ってみましょう。

 キーボードの、TABボタンを押すことで、複数のテキスト・ボックス(edtiboxes)と、複数のボタンの選択を切り替えられるように、設定します。
 これは、とても簡単です。

 移動経路のため、次のコードを挿入します。
(DialogAsMain.tplを使用していると仮定して、Win Main procを見つて下さい。)

' Message loop
Do While GetMessage(@msg,NULL,0,0)
  If IsDialogMessage(hWnd,@msg)=0 Then
    TranslateMessage(@msg)
    DispatchMessage(@msg)
  EndIf
Loop

 TABINDEX が設定されて、動くはずです。

 この事例のコードを、 ここ で、ダウンロードできます。



Accelerators and Hotkeys:

 Step2:
 テンプレートとして DialogAsMain.tpl を選択して、新しい Project を作りましょう。
 ダイアログ・エディタを開いて、そして、以下のようにして下さい。
Accel1.jpg (19792 Byte)

 この最初の簡単なサンプルは、「Hello」ボタンに、hotkey CTRL+O 設定する方法を示しています。
 FbEditが、仕事の大部分をするので、これは簡単です。
 ただ、最初に、WinMain の loop に、次のコードを追加する必要があります。

' Message loop
Do While GetMessage(@msg,NULL,0,0)
  If TranslateAccelerator(hWnd,hAccel,@msg)=0 Then
    TranslateMessage(@msg)
    DispatchMessage(@msg)
  EndIf
Loop

 そして、.biファイルに、以下を加えて下さい。

#Define IDC_BTN1 1001
#Define IDR_ACCEL 2000

 そして

Dim Shared hAccel As HACCEL

 WM_INITDIALOG に、以下を設置します。

hAccel=LoadAccelerators(hInstance,Cast(ZString Ptr,IDR_ACCEL))

 メニューの Hotkey は、これで働くはずです。
 「Go」でビルドして、「Run」を押してみて下さい。

 ALT + F を押すと、IDM_FILE_MENU が表示され、ALT + H を押すと、IDM_HELP_MENU が表示されるはずです。簡単ですね?

 しかし、もっと簡単になります。
 FbEditで、.rcファイルを開いて、資源 → Add Acceleratortable. を選択して下さい。

 Acceleartortableダイアログで、以下のように設定してみて下さい。
Accel2.jpg (34892 Byte)

 これで、Hotkey CTRL+O は、「Hello」ボタンをクリックしたのと同じ結果になります。
 テストとして、次のコードを「Hello」ボタンに置いてみて下さい。

MessageBox(hWin,"Hello",@AppName,MB_OK)

 hotkey として、F1 キーを指定したい場合は、Keyで、F1を選択して、他の3個のチェック・ボックスの、どれもチェックをしないでおきます。


 この事例のコードを、 ここ で、ダウンロードできます。


チュートリアルの初め(チュートリアル 1)に戻る← この Top に戻る↑ トップページに戻る


Copyright © 2008-2021 WATANABE Makoto. All rights reserved.