dポイントプレゼントキャンペーン実施中!

LinuxでMotifを使用してプログラムを作成しています。
言語は、C言語です。

Motifのウィンドウを起動して、ボタンにフォーカスがあたっている状態でEnterキーを押しても反応しません。
その代わりにSpaceキーだとマウスでクリックした時と同じ状態となります。
Enterキーでボタンを実行したいのですが制御する方法があるのでしょうか?

また、スクロールウインドウを表示させそこに図形描画で表を描画しています。
その上にポップアップウィンドウを表示させて、その状態でスクロールバーをマウスの左ボタンで1度だけクリックしても最終端まで移動してしまいます。
原因がよくわかりません何か対処方法があれば教えてください。表示しているポップアップウィンドウは、最前面に固定で表示するようにしています。

A 回答 (2件)

プログラム中からの変更する場合、widgetをcreateする時に


Argに同様の設定を追加します。

こんな感じ。

static char trnsdef[] =
"#override \n"
"<Key>Return: ArmAndActivate() ";
XtTranslations trns;
Arg arg[32];
int argno = 0;

trns = XtParseTranslationTable( trnsdef );
XtSetArg( arg[argno], XmNtranslations, trns ); argno++;
    • good
    • 0
この回答へのお礼

大変有り難う御座います。
これで解決できます。

お礼日時:2003/12/24 10:22

>Enterキーでボタンを実行したいのですが制御する方法があるのでしょうか?



Enter(Returrn)キーは別の機能に割り当てられていますが、リソースの設定で変更可能です。

PushButton widgetで全てのボタンを変更するなら、
*XmPushButton.translations:#override \
<Key>Return: ArmAndActivate()

だと思います。
ArmAndActivateってのがSPACE押した時に実行されるので、Returnでも同じ処理を実行させるように設定しています。
.Xdefaultにでも入れてください。
プログラム中からも変更可能ですが、こっちのが簡単ですので。

後半の質問は、プログラムそのものを見ないとけんとうつきません。
ウインドウの作り方に問題があるような気はしますが。
    • good
    • 0
この回答へのお礼

ご回答有り難う御座います。
プログラム中からも変更できるのであればそちらの方が望ましいです。
もし、よければプログラム中からの変更方法を教えていただけないでしょうか?

お礼日時:2003/12/22 14:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!