• 締切済み

VC++ のタブオーダーについて

親ダイアログにタブコントロールを貼り付け、その中でエディットボックスや リストボックスで入力出来るようになっています。 タブコントロールの中でのタブ移動はタブオーダーの順に進むのですが、 親ダイアログにあるOKボタン、キャンセルボタンにタブキーで移動が 出来ません。(フォーカスが飛んでくれません) ダイアログのプロパティでコントロール、親ダイアログの管理など やってみたのですが、分かりません。組み合わせが悪いのでしょうか? よろしくお願いします。

みんなの回答

  • sheep_goo
  • ベストアンサー率13% (3/22)
回答No.1

タブコントロールを使ったアプリを作ったことがないので、ちゃんとした回答はできませんが・・・。 OKボタン・キャンセルボタンのプロパティの一般で「タブストップ」チェックボックスにチェックは入っていますか?

osaru3
質問者

お礼

sheep_gooさん、ありがとう御座います。 プロパティ関係は試してみたりしたのですが、タブコントロール から親ダイアログへタブで飛んでくれません。 ソースに追加するとすれば多分2,3行程度なんだと思うのですが。

関連するQ&A

  • FlexGridでSetFocusするとタブオーダーがおかしくなる

    WindowsXP、VC++2005のMFCにて図のようなプログラムを作成しています。 ※※※添付図はListCtrlですが、FlexGridとして認識お願いします。※※※ SetFocusが原因と考えられる問題が生じてしまい、 期待動作をさせることが出来ない状況です。 なお、FlexGridでなくListCtrlで同じプログラムを作成し、 同手順で操作したところ、期待動作をさせることが出来ました。 よって、FlexGridのみ起こる問題と考えられます。 原因と解決策についてご存知の方おられましたら、 ご教示お願い致します。 下記に期待動作、問題動作、また問題が再現しない特別な場合の 手順について記載します。 【期待動作】 タブオーダー設定順(リスト→ボタン1→ボタン2→ボタン3) に遷移させたい 【問題動作】 ボタン2にフォーカスがある状態でタブキーを押すと、 ボタン3でなくボタン1にフォーカスが移る 【問題が再現する場合の手順】 (1)ボタン2を押して、(※処理1)を実行する。  その際に、リストにフォーカスが当った後に、  フォーカスがボタン2に移る。 (2)タブキーを押す。 (3)ボタン3にフォーカスが移るはずが、ボタン1に移ってしまう。 【問題が再現しない場合の手順】 (1)ボタン1もしくはボタン3をクリックしフォーカスを当てる。 ※この際ボタン2をクリックすると、問題が再現してしまう。 ※ボタン1及びボタン3を押した際の処理はないものとする。 (2)アクセラレータキー(&A)によってボタン2をクリックし、  (※処理1)を実行。 (3)タブキーを押す。 (4)タブオーダーの通り、ボタン3へとフォーカスが移る。 (※処理1)の内容 void CtestListDlg::OnBnClickedButton2() { m_List.SetFocus(); //グリッドにフォーカスをセット m_btn2.SetFocus(); //ボタン2にフォーカスをセット }

  • 【Access】タブオーダーが選択できなくなった

    フォームにてボタンを追加することが多く、その都度タブオーダーでボタンの移動順を変更していたのですが、Officeが2013から365へ変更後、Accessのタブオーダーが選択できなくなってしまいました。 オプション等で何か特別な設定が必要なのでしょうか? 会社の指示通りにOffice365をインストールしているので、再インストールはできません。

  • タブコントロールとタブオーダーについて。

    Windows NTでAccess2000を使っています。 製造業で商品の仕様を入力するフォームを作ろうと思っています。 商品は8種類に分かれていて商品ごとに入力項目が違うものもあるので 共通しない項目はタブコントロールで商品別に入力フォームを分けようと思っています。 そして共通項目の中には商品名の入力欄を設けてどの商品か入力したときに その商品名のタブが前面に表示されて、共通項目の最後の項目を入力後に そのタブの最初の項目にタブが飛ぶようにして、 そしてタブの最後の項目を入力後は次のレコードに移動するようにタブオーダーしたいのです。 マクロやVBA処理でどうにかなるのではないかと奮闘中ですがどうもうまくいきません。 いい方法をご存知の方、ぜひ知恵を貸してください。よろしくお願いします。

  • VC++ タブコントロールについて

    以下の環境にてタブコントロールを実装しようとしています。 ・VisualStudio2008 VC++ ・ネイティブ(.NET未使用) ・ダイアログベース、スタティックライブラリ タブを表示させるメインダイアログと他に、子ダイアログ3つを用意して タブが押されたときに表示をON/OFF(ShowWindow使用)させるものを作ったのですが、 以下の問題が出ています。 うまい対策または、タブコントロールの文献で参考になるサイトを教えてください。 [現象と質問] ・メインダイアログを移動させると子ダイアログが追従しない。  → OnPaint()にてOnTcnSelchangeSelectTab()を呼ぶようにしたら追従しましたが、    すばやくダイアログを動かすと、子ダイアログが遅れてついてくるように見えてしまいます。    子ダイアログを追従させるうまい方法(本来のやりかた)はどうすればよいでしょうか。 ・子ダイアログをクリックすると、メインダイアログのタイトルが薄くなる(裏に隠れるような感じ)。  → メインダイアログと子ダイアログのプロパティの組み合わせでなんとかなると思っていますが、    どのようにしたらいいのか、てこずっています。    アドバイスをいただけたらと思います。

  • Tabコントロールに貼り付けたダイアログ内のフォーカス移動について

    Tabコントロールを使ったソフトを製作中です。 各Tab内のダイアログは、CHILDフラグの付いたウインドウをリソースで作っておき、CreateDialog関数で作成し、TCN_SELCHANGEメッセージを拾ってShowWindowでどのダイアログを見せるかを切り替えています。 マウス操作は問題ないのですが、キーボードのタブキーによるフォーカスの移動がうまくできません。子ダイアログ内の各コントロールを移動させたいのですが、どこにフォーカスがあっても、1回タブキーを押すとTabコントロールにフォーカスが移り、それ以降どこにも移動しないという状態です。 何かメッセージをうまく処理していないのでしょうか?解決策があればご教授お願いします。

  • VC++6.0 エディットボックス、スピンコントロールについての質問

    VC++中の下ぐらいの技術者です。 エディットボックスにfloat型のメンバ変数を関連付けて使っています。 しかし、実際に値を打ち込むときに小数点、つまり「.」キーを押すと、 エディットボックス内でカーソルが先頭に戻ってしまいます。 これは直せませんか? また、スピンをエディットボックスのタブオーダーの次に配置し、プロパティのスタイルで 「自動関連付け」と「数値の自動表示」にチェックを入れたら、 そのコントロールが配置されたダイアログを表示するとエラーで表示できません。 これらの原因、解決方法の分かる方ご教授お願いします。

  • フォーカスの順番移動

    VBAで今フォーム1にテキストボックス2つ コンボボックス3つ上から順にあるのですが エンターキーまたはタブを押すと上から順番にフォーカスを移動させたいので すが、どうすればいいのでしょうか?プロパティの設定でできるのでしょうか ?今はタブキーを押すとばらばらの順番でフォーカスが移動します。なぜでしょう? ちなみにコントロールの名前は上から TextBox1、TextBox2、ComboBox1、ComboBox2、ComboBox3です

  • VC++のエディットボックスの非表示

    VC++で、ダイアログを作りました。 エディットボックスを置いているのですが、 このエディットボックスは始めは非表示(入力を受け付けない)にするため、 このエディットボックスのプロパティにある "Disable"をtrueにして"Visible"もtrueにしました。 そこまではよかったのですが、 「入力」ボタンを押すと、エディットボックスが白く表示され、入力を受け付けるというようにしたいのですが、 エディットボックスのプロパティを変更する関数というのはあるのでしょうか? いろいろ検索などをしているのですが、方法がわかりません。よろしくお願いします。

  • ダイアログ中のタブキーによるカーソルの移動

    MFCでダイアログを使ったアプリケーションを 作りました。 実行時に、ダイアログで 入力項目が10個くらいあるのですが、 タブキーで移動しようとすると、 カーソルが入力ボックス並びとは全く関係なく、 あっちこっち飛んでしまいます。 どうやら入力ボックスを作った順番に 飛んでいるらしい?のです。 入力ボックスの順にタブキーが移動するように できる方法がありましたら、 教えてください。 参考HPやヒント、キーワードだけでも 大変助かります。 よろしくお願いします。

  • テキストボックス1が空白のとき背景色を黄色にしてタブ移動しないようにし

    テキストボックス1が空白のとき背景色を黄色にしてタブ移動しないようにして再入力を促したいのですが うまく行きません まず、テキストボックス1からテキストボックス2に進むようタブオーダーの設定がされています Private Sub テキストボックス1_Exit(Cancel As Integer) '空白のとき If IsNull(Me!テキストボックス1) Then MsgBox "テキストボックス1が指定されていません。" 'テキストボックス1を黄色にする Me!テキストボックス1.BackColor = 8454143 'タブキー操作で移動できないようにする テキストボックス2.TabStop = False Else 'それ以外の場合タブキー操作で移動できるようにする テキストボックス2.TabStop = True End If ご指導ください

専門家に質問してみよう