CTabControl使用(系统配置程序部分功能)
生活随笔
收集整理的這篇文章主要介紹了
CTabControl使用(系统配置程序部分功能)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cpp] view plaincopy
print
?
標簽控件相當于一個頁面容器,可以容納多個對話框;?? CTabCtrl類主要成員函數?? Int?GetCueSel()const?;?獲取標簽控件中當前選擇標簽索引?? BOOL?GetItem(int?nItem,TCITEM*?pTabCtrItem)const;?//獲取標簽某個標簽的信息?? BOOL?SetItem(int?nItem,TCITEM*?pTabCteltem)?const;//設置某標簽的所有或部分屬性?? ?? 每個對話框的邊框風格改為無邊框,child子窗口??
標簽控件相當于一個頁面容器,可以容納多個對話框;
CTabCtrl類主要成員函數
Int GetCueSel()const ; 獲取標簽控件中當前選擇標簽索引
BOOL GetItem(int nItem,TCITEM* pTabCtrItem)const; //獲取標簽某個標簽的信息
BOOL SetItem(int nItem,TCITEM* pTabCteltem) const;//設置某標簽的所有或部分屬性每個對話框的邊框風格改為無邊框,child子窗口
[cpp] view plaincopy print? 類成員變量及函數?? //?CCTabControlDlg?對話框,初始化?? class?CCTabControlDlg?:?public?CDialogEx?? {?? ……?? public:?? ????CTabCtrl?m_CTabCtrl;?? ????CNomalDlg?m_CNomalDlg;??//常規對話框?? ????CBeginDlg?m_CBeginDlg;???//啟動對話框?? ????afx_msg?void?OnTcnSelchangeTabSystemconfig(NMHDR?*pNMHDR,?LRESULT?*pResult);????????????//控件響應函數?? };??
類成員變量及函數
// CCTabControlDlg 對話框,初始化
class CCTabControlDlg : public CDialogEx
{
……
public:CTabCtrl m_CTabCtrl;CNomalDlg m_CNomalDlg; //常規對話框CBeginDlg m_CBeginDlg; //啟動對話框afx_msg void OnTcnSelchangeTabSystemconfig(NMHDR *pNMHDR, LRESULT *pResult); //控件響應函數
};
[cpp] view plaincopy print? BOOL?CCTabControlDlg::OnInitDialog()?? {?? ????CDialogEx::OnInitDialog()?? ………..?? ?? ????//?TODO:??在此添加額外的初始化代碼?? ????//初始化標簽控件?? ????TC_ITEM?tcItem;?//標簽控件?? ?? ????tcItem.mask?=?TCIF_TEXT;?? ????tcItem.pszText?=?L"常規";?? ?? ????//添加標簽頁?? ????m_CTabCtrl.InsertItem(0,?&tcItem);??? ?? ????tcItem.pszText?=?L"引導";?? ????m_CTabCtrl.InsertItem(1,?&tcItem);?? ?? ????tcItem.pszText?=?L"服務";?? ????m_CTabCtrl.InsertItem(2,?&tcItem);?? ?? ????tcItem.pszText?=?L"啟動";?? ????m_CTabCtrl.InsertItem(3,?&tcItem);?? ?? ????tcItem.pszText?=?L"工具";?? ????m_CTabCtrl.InsertItem(4,?&tcItem);?? ?????? ????//設置默認選擇項?? ????m_CTabCtrl.SetCurSel(3);?? ?? ????//初始化?? ????CRect??tabRect;?? ????m_CBeginDlg.Create(IDD_DIALOG_BEGIN,?&m_CTabCtrl);?? ????m_CNomalDlg.Create(IDD_DIALOG_NOMAL,?&m_CTabCtrl);?? ?? ????m_CTabCtrl.GetClientRect(&tabRect);?? ?? ?? ????//調整tableRect大小,適合放置標簽?? ????tabRect.left?+=?1;?? ????tabRect.right?-=?1;?? ????tabRect.top?+=?25;?? ????tabRect.bottom?-=?1;?? ?? ????//根據調整好的tabRect放到子對話框中?? ????m_CBeginDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),tabRect.Height(),SWP_SHOWWINDOW);?? ????m_CNomalDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),?tabRect.Height(),?SWP_HIDEWINDOW);//隱藏窗口?? ?? ????return?TRUE;??//?除非將焦點設置到控件,否則返回?TRUE?? }??
BOOL CCTabControlDlg::OnInitDialog()
{CDialogEx::OnInitDialog()
………..// TODO: 在此添加額外的初始化代碼//初始化標簽控件TC_ITEM tcItem; //標簽控件tcItem.mask = TCIF_TEXT;tcItem.pszText = L"常規";//添加標簽頁m_CTabCtrl.InsertItem(0, &tcItem); tcItem.pszText = L"引導";m_CTabCtrl.InsertItem(1, &tcItem);tcItem.pszText = L"服務";m_CTabCtrl.InsertItem(2, &tcItem);tcItem.pszText = L"啟動";m_CTabCtrl.InsertItem(3, &tcItem);tcItem.pszText = L"工具";m_CTabCtrl.InsertItem(4, &tcItem);//設置默認選擇項m_CTabCtrl.SetCurSel(3);//初始化CRect tabRect;m_CBeginDlg.Create(IDD_DIALOG_BEGIN, &m_CTabCtrl);m_CNomalDlg.Create(IDD_DIALOG_NOMAL, &m_CTabCtrl);m_CTabCtrl.GetClientRect(&tabRect);//調整tableRect大小,適合放置標簽tabRect.left += 1;tabRect.right -= 1;tabRect.top += 25;tabRect.bottom -= 1;//根據調整好的tabRect放到子對話框中m_CBeginDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(),tabRect.Height(),SWP_SHOWWINDOW);m_CNomalDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);//隱藏窗口return TRUE; // 除非將焦點設置到控件,否則返回 TRUE
}
[cpp] view plaincopy print? CTabControl控件消息函數?? void?CCTabControlDlg::OnTcnSelchangeTabSystemconfig(NMHDR?*pNMHDR,?LRESULT?*pResult)?? {?? ????//?TODO:??在此添加控件通知處理程序代碼?? ????int?nSelectCur?=?0;?? ?? ?? ????CRect?tabRect;?? ????m_CTabCtrl.GetClientRect(&tabRect);?? ????//調整tableRect大小,適合放置標簽?? ????tabRect.left?+=?1;?? ????tabRect.right?-=?1;?? ????tabRect.top?+=?25;?? ????tabRect.bottom?-=?1;?? ?? ????nSelectCur?=?m_CTabCtrl.GetCurSel();?? ?? ????switch?(nSelectCur)?? ????{?? ????????case?0:???? ????????{?? ??????????m_CBeginDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),?tabRect.Height(),?SWP_HIDEWINDOW?);?? ??????????m_CNomalDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),?tabRect.Height(),?SWP_SHOWWINDOW);?? ????????}?? ????????break;?? ??????case?1:??break;?? ??????case?2:??break;?? ??????case?3:?? ??????{?? ??????????m_CBeginDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),?tabRect.Height(),?SWP_SHOWWINDOW);?? ??????????m_CNomalDlg.SetWindowPos(NULL,?tabRect.left,?tabRect.top,?tabRect.Width(),?tabRect.Height(),?SWP_HIDEWINDOW);?? ??????}??? ??????break;?? ??????case?4:??break;?? ?? ????}?? ?? ????*pResult?=?0;?? }?? ?? ?? ?? 啟動對話框中添加靜態控件用來打開任務管理器?? void?CBeginDlg::OnStnClickedStaticOptask()?? {?? ????//?TODO:??在此添加控件通知處理程序代碼?? ????ShellExecute(this->m_hWnd,?L"open",?L"taskmgr.exe",?L"",?L"",SW_SHOW);?? }?? ???
CTabControl控件消息函數
void CCTabControlDlg::OnTcnSelchangeTabSystemconfig(NMHDR *pNMHDR, LRESULT *pResult)
{// TODO: 在此添加控件通知處理程序代碼int nSelectCur = 0;CRect tabRect;m_CTabCtrl.GetClientRect(&tabRect);//調整tableRect大小,適合放置標簽tabRect.left += 1;tabRect.right -= 1;tabRect.top += 25;tabRect.bottom -= 1;nSelectCur = m_CTabCtrl.GetCurSel();switch (nSelectCur){case 0: {m_CBeginDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW );m_CNomalDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);}break;case 1: break;case 2: break;case 3:{m_CBeginDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);m_CNomalDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);} break;case 4: break;}*pResult = 0;
}啟動對話框中添加靜態控件用來打開任務管理器
void CBeginDlg::OnStnClickedStaticOptask()
{// TODO: 在此添加控件通知處理程序代碼ShellExecute(this->m_hWnd, L"open", L"taskmgr.exe", L"", L"",SW_SHOW);
}
總結
以上是生活随笔為你收集整理的CTabControl使用(系统配置程序部分功能)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取元素大小和位置的方式
- 下一篇: 半透明AlphaBlend