C++ Tab Control 控件动态添加Tab项 TabCtrl_InsertItem

因为我写的是个浏览器,需要动态添加窗口,就搞了个函数。记录一下,防止今后忘掉。

相关变量:

HWND hDlg_intab[4]; //要载入到TAB控件中的对话框句柄
HWND htabctrl; // TAB控件的句柄
RECT rect;//存放tab控件的区域位置
int Tab_Size=0;   //tab控件大小
int Tab_Show_Id=0; //存放当前显示的TAB ID

//添加 TAB 项  参数: 项头名,新项ID,显示的项

 

void Tab_Item_Add(LPSTR name, int index, int showitem)
{
TCITEM tie;//设置tab标签的属性
tie.mask=TCIF_TEXT|TCIF_IMAGE;//psztext字段有效
tie.iImage = -1;   
tie.pszText=name; //项头
TabCtrl_InsertItem(htabctrl,index,&tie); //添加项
hDlg_intab[index]=CreateDialog(hinstance,MAKEINTRESOURCE(IDD_DIALOG1),htabctrl,DlgProc[index]); //创建窗口
MoveWindow(hDlg_intab[index],2,25,rect.right – rect.left,rect.bottom – rect.top,FALSE);  //把窗口放到 tab 里
ShowWindow(hDlg_intab[Tab_Show_Id],FALSE);   // 隐藏 当前显示的窗口
ShowWindow(hDlg_intab[showitem],SW_SHOW); // 显示新窗口
TabCtrl_SetCurSel(htabctrl,showitem);   // TAB 项头 也得切换到新的  Tab 项
InvalidateRect(htabctrl,&rect,TRUE); //添加后刷新控件,不刷新会很恶心的,不信可以试试。
Tab_Size=Tab_Size+1;   //  其中当前函数参数 index 可以用 Tab_Size 代替
Tab_Show_Id=showitem;  // 重新赋值 当前显示ID
}

发表评论

您的电子邮箱地址不会被公开。