0

createwindow でタブを作成します。2 つのタブ項目があり、2 つのタブ項目に静的ウィンドウを作成したいと考えています。親がタブへのハンドルであるcreatewindowを使用しています。ただし、子ウィンドウは tab1 と tab2 の両方に存在します。2 つのタブ項目に異なるコンテンツが必要です。どうすればそれができますか。

特定のタブ1またはタブ2に属する静的コントロールを作成する別の方法はありますか...作成ウィンドウからのタブのhwndではありません。私はそれを行う方法がわからないので、これが私の解決策です

私は勝利APIを使用します

ありがとう

ここに私のコードのいくつか

TabCtrl_InsertItem(hwndTab,0,&tcitem);
TabCtrl_InsertItem(hwndTab,1,&tcitem);    
hwndTab_1_1_1 = CreateWindow(L"BUTTON",L"sample",WS_CHILD|WS_VISIBLE,0,29,100,50,hwndTab,(HMENU)4,hInstance,NULL);
        hwndTab_1_2_1 = CreateWindow(L"BUTTON",L"sample2",WS_CHILD|BS_AUTOCHECKBOX,20,80,100,50,hwndTab,(HMENU)4,hInstance,NULL);

そして私はこれを使用しています:

case WM_NOTIFY:
    if (((LPNMHDR)lParam)->code == TCN_SELCHANGE) {
        switch(TabCtrl_GetCurSel(hwndTab)) {
            case 0:
                ShowWindow(hwndTab_1_1_1,SW_SHOW);

                ShowWindow(hwndTab_1_2_1,SW_HIDE);
                break;

            case 1: //
                ShowWindow(hwndTab_1_1_1,SW_HIDE);

                ShowWindow(hwndTab_1_2_1,SW_SHOW);
                break;
            default: return DefWindowProc(hwnd, Message, wParam, lParam);
       }

   }
   else {
       return DefWindowProc(hwnd, Message, wParam, lParam);
   }
   break;

これらのコードと同じコードが必要です。子ウィンドウが多数ある場合、表示と非表示を何度も使いたくありません。

4

1 に答える 1

0

次のように試すことができます:

3 つのタブ ページがあるとします。

T *pTabPage[3]; 3 つのタブ ページをポイントします。

int nCurrentPage; 現在のタブ ページを保存します。

タブページを変更したいときは、

1.nCurrentPage に保存されている「現在のページ」を非表示にする: ShowWindow(pTabPage[nCurrentPage], SW_HIDE);

2.実際に現在のページを取得します: nCurrentPage = GetCurSelect();

3.実際に現在のページを表示します: ShowWindow(pTabPage[nCurrentPage], SW_SHOW);

メソッドを説明するためだけに、コードが正しくありません

お役に立てれば幸いです。

于 2012-08-22T01:23:42.690 に答える