0

我用 createwindow 创建选项卡。我有 2 个选项卡项,我想在 2 个选项卡项中创建一些静态窗口。我使用 createwindow 和 parent 是选项卡的句柄。但是子窗口存在于 tab1 和 tab2 中。我希望 2 个标签项具有不同的内容。那我该怎么做。

是否有另一种方法来创建属于特定 tab1 或 tab 2 的静态控件...不是来自创建窗口的选项卡的 hwnd。我不知道该怎么做所以这是我的解决方案

我使用win 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 个标签页;

诠释 nCurrentPage; 保存您当前的标签页。

当你想改变标签页时,

1.隐藏保存在nCurrentPage中的“当前页面”: ShowWindow(pTabPage[nCurrentPage], SW_HIDE);

2.获取真正的当前页面:nCurrentPage = GetCurSelect();

3.显示真正的当前页面:ShowWindow(pTabPage[nCurrentPage], SW_SHOW);

代码不对,只是为了说明方法

希望能帮到你!

于 2012-08-22T01:23:42.690 回答