现在主流的网络浏览器,和文本编辑器,风格都是标签式的浏览窗口,而不是MFC的MDI那样的多重子窗口。
1.请问实现一个标签式的窗口,很复杂吗,是不是win32 的窗口api里面不直接提供这样的功能? 要自己实现一个?
2.我能想到的最简单的实现模型,就是一个ToolBar当作标签条,上面有若干个button,每个button实际对应一个子窗口,也就是标签。高手指点一下!

解决方案 »

  1.   


    case WM_CREATE:
    {
    HWND hTabView = CreateWindow(_T("SysTabControl32"), _T("TabView"), WS_CHILD|WS_VISIBLE,
    0, 0, 300, 200, hWnd, NULL, hInst, NULL); TCITEM ti = {0};
    ti.mask = TCIF_TEXT;
    TCHAR szText[100] = {0};
    ti.pszText = szText;
    ti.cchTextMax = 100; for(int i=0; i<3; i++)
    {
    _stprintf(szText, _T("Label %d"), i+1);
    SendMessage(hTabView, TCM_INSERTITEM, i, (LPARAM)(LPTCITEM)&ti);
    }
    }
    break;
      

  2.   

    你说的标签其实就是tabctrl
    和toolbar不是一回事
      

  3.   

    讲究效率的软件不会使用那么多窗口,虽然有多个标签,但都使用的是同一个窗口!你可以去看看opera这款软件,没用什么子窗口!不过vs2008这种是一个标签对应一个窗口!