TabCtrlにダイアログを貼り付ける – プログラミング – Home

TabCtrlにダイアログを貼り付ける
 
通知
すべてクリア

[解決済] TabCtrlにダイアログを貼り付ける


匿名san
 匿名san
(@匿名san)
ゲスト
結合: 20年前
投稿: 10
Topic starter  

連投で申し訳ありません。タイトルの通りなのですが、

現在、ダイアログA(「親」って言い方でいいのかな?)に
Tabコントロールを貼り付けてます。
AのOnInitDialog()にて、Tabコントロールのタイトル設定を行い
最初のタブの表示をさせようとしてます。(タイトル設定はOK。)

表示させる内容として、ダイアログB(スタイル:チャイルド/境界線:なし
タイトルバー:なし)を作りました。
Tabコントロール上にBの表示方法を探したのですが、APIでのやり方
しか見つからずMFCの方法が探せなかったので、試行錯誤でソース書いて
みました。上記のタイトル設定後です。

CDialogA Dialog; // インスタンス生成
Dialog.Create(DIALOG_A, NULL); // ダイアログ生成(?)←理由がイマイチです。
Dialog.MoveWindow(**, **, **, **); // 表示位置決め。数値は適当です。
Dialog.ShowWindow(SW_SHOW); // で表示。

エラーは無く実行は出来るのですが、表示できません。
MoveWindowの位置が悪いのかな?とも思い、値を変えて
やってみたのですがやはり表示できません。
(Tabコントロールの内部の座標の取得方法も?ですが、
これは表示が出来てから探そうかと・・・。)

自分の力及ばず、申し訳ありませんがご教授下さい。
また参考になるサイト等あれば合わせて教えてください。
宜しくお願い致します。


引用未解決
トピックタグ
匿名san
 匿名san
(@匿名san)
ゲスト
結合: 20年前
投稿: 10
Topic starter  

>Dialog.MoveWindow(**, **, **, **); // 表示位置決め。数値は適当です。

やはり、ここの数値が問題だったようです。
あくまでも適当にやっていた為、変な所で
「物凄く小さく」表示されてたみたいです。

実際、TABコントロールの中身の最大座標って
どのように取得すればいいんでしょうか?
GetItemRect()を見ると「タブに外接する四角形」となるので、
貼り付け座標を考える場合はあまり意味を持たないと思います。

もしかして、これで得たrectから、試行錯誤で内部を合わせるとか
しないとダメなんでしょうか?半分自己解決しましたが、
新たに質問させてください。宜しくお願いします。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CTabCtrl::AdjustRect で。


返信引用
匿名san
 匿名san
(@匿名san)
ゲスト
結合: 20年前
投稿: 10
Topic starter  

ありがとうございます。
MSDNを読みました。うまく行きそうです。
ありがとうございました。解決とします。

ちなみに今回みたいに「やりたい事が出来る関数」が
わからない場合って、皆さんどうやって探してるんで
しょうか?取得とか設定ならGetとかSetとかをキーに
なんとか探せますが、流石にAdjustまでは考え付きませんでした。
一度使ってしまえば覚えられますけど・・・。
やっぱ難しいですね。

前出の質問も合わせてありがとうございました。m(__)m


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

MSDN で CTabCtrl のメンバ関数一覧を見ます。
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_mfc_ctabctrl_class_members.asp


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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