因为我写的是个浏览器,需要动态添加窗口,就搞了个函数。记录一下,防止今后忘掉。
相关变量:
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
}