ダイアログの重ね合わせ時のタブオーダ – プログラミング – Home

ダイアログの重ね合わせ時のタブオーダ
 
通知
すべてクリア

ダイアログの重ね合わせ時のタブオーダ


もん太
 もん太
(@もん太)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

ダイアログの上にダイアログを貼り付いている以下の様な
アプリを作ってます。([1]上に[2]が貼り付けてあるダイアログです。)
┏━━━━━━━━━━━━┓
┃□ □ ★ [1] ┃
┃ ┏━━━━━┓ ┃
┃ ┃☆□□[2] ┃ ┃
┃ ┃ ★ ┃ ┃
┃ ┗━━━━━┛ ┃
┃☆ □ ▲ ┃
┗━━━━━━━━━━━━┛
ここで質問なのですが[1]★→[2]☆へタブオーダを遷移させる良い方法
ってありませんか?通常の設定だと[1]▲→[2]☆へ跳んでしまいます。

一応現在は、[1]のPretranslateMessageで「[1]★ならば[2]☆へ」と
[2]のPretranslateMessageで「[2]★ならば[1]☆へ」それぞれ飛ぶように
記述していますが、結局[1]▲で再度[2]☆へ跳んでしまいます。

また[2]の画面は複数パターン用意されており条件によって変わります。
[1]の画面は変化はないのですが、この方法しかないとなると、
全ての[2]の画面パターンに対して、[1]★から飛ぶように場合分けしないと
ならないのでしょうか?

ごちゃごちゃしてて申し訳ありません。どなたかアドバイス頂けると
ありがたいです。宜しくお願いいたします。(環境はWin2K+VC6です)


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

ダイアログのプロパティに「コントロール」というのが
ありますので、ダイアログ[2]のこれをチェックします。
(これはダイアログにコントロールのように振る舞うように要請します)

実行時に、ダイアログ[2]のタブオーダーを[1]★の次になるように移動します。
ダイアログ[2].SetWidowPos([1]★, ...);

PretranslateMessage()で自前で何かする必要はありません。


返信引用
REE
 REE
(@REE)
ゲスト
結合: 24年前
投稿: 240
 

発想の転換で・・・
[1]の中のタブオーダーを下記の順番にしておく。
☆ □ ▲ □ □ ★
開いたとき、4番目のコントロール(元1番目)にフォーカスを移動しておく。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました