タブオーダーをマスタにより全面的に変更するには – プログラミング – Home

タブオーダーをマスタにより全面的に変更...
 
通知
すべてクリア

[解決済] タブオーダーをマスタにより全面的に変更するには


悩めるおっちゃん
 悩めるおっちゃん
(@悩めるおっちゃん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

VC++の超超初心者です。

システム上、あるダイアログのタブオーダーを管理するマスタを
もち 当ダイアログのみ そのマスタを 読込み タブオーダーを
制御したいと考えています

他のサイトで SetWindowPosで可能と出ていたのですが説明MSDNライブラリーを
読んでも実現できるか疑問です.
又 単純な条件では SetFocus で可能と思いますが・・・

何方か 詳しく教えていただけないでしょうか!


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 24年前
投稿: 312
 

リソースにIDのIDC_BUTTON1とIDC_BUTTON2というボタンを作ったとします
このボタンのZオーダーを互いに変更する処理はこんな感じです
MFCを使っているなら違う書き方もあるけど、説明しやすいようにしておきました

// IDC_BUTTON2が先になる
void CMy3423343Dlg::OnButton3()
{
CWnd* pWnd1 = GetDlgItem(IDC_BUTTON1);
CWnd* pWnd2 = GetDlgItem(IDC_BUTTON2);
pWnd1->SetWindowPos(pWnd2, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
// IDC_BUTTON1が先になる
void CMy3423343Dlg::OnButton4()
{
CWnd* pWnd1 = GetDlgItem(IDC_BUTTON1);
CWnd* pWnd2 = GetDlgItem(IDC_BUTTON2);
pWnd2->SetWindowPos(pWnd1, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}

MFCを使っていない場合はこんな感じです
// IDC_BUTTON2が先になる
SetWindowPos(GetDlgItem(hDlg, IDC_BUTTON1),
GetDlgItem(hDlg, IDC_BUTTON2),
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
// IDC_BUTTON1が先になる
SetWindowPos(GetDlgItem(hDlg, IDC_BUTTON2),
GetDlgItem(hDlg, IDC_BUTTON1),
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);


返信引用
悩めるおっちゃん
 悩めるおっちゃん
(@悩めるおっちゃん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

KUさん 早速のアドバイス有難うございました

ターゲットは4つのボタンでしたが 参考を元に致しまして
うまく制御できました。

心から御礼申し上げます.


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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