Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 美国黄色片免费看,亚洲一区亚洲二区亚洲三区,免费一级毛片

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          做Windows高級(jí)工程師,需要知道MFC控件大全(完整版)

          FC控件:

          Windows標(biāo)準(zhǔn)控件:

          windows標(biāo)準(zhǔn)控件由Windows 操作系統(tǒng)提供,在Windows 95中還提供了一些新增的控件。所有這些控件對(duì)象都是可編程的,我們可以使用Visual C++提供的對(duì)話框編輯器把它們添加到對(duì)話框中。Microsoft基礎(chǔ)類庫(MFC)提供了封裝這些控件的類,它們列于表6.1。

          在MFC 中,類CWnd是所有窗口類的基類,很自然的,它也是所控件類的基類。

          Windows標(biāo)準(zhǔn)控件在以下環(huán)境下提供:

          windows 95

          Windows NT 3.51及以后版本

          win32s 1.3

          注意:visual C++4.2及以后版本不再支持Win32s.

          MFC基本常用控件基本用法

          VC++控件工具箱:

          按鈕(Button)

          用來接收用戶的命令,應(yīng)用程序在接收到用戶命令后,通常需要進(jìn)行一些后臺(tái)工作。按鈕可以響應(yīng)單擊或雙擊動(dòng)作,在按鈕接收到鼠標(biāo)動(dòng)作后,向其父窗口發(fā)送相應(yīng)的控件通知,用戶可以對(duì)這些控件通知進(jìn)行消息映射,從而進(jìn)行相應(yīng)的處理。

          在一個(gè)對(duì)話框中,可以定義一個(gè)默認(rèn)按鈕,這只要選中按鈕屬性中的“Default”選項(xiàng)。如果在對(duì)話框活動(dòng)的時(shí)候按下了Enter鍵,則等同于單擊了默認(rèn)按鈕。MFC提供了CButton類支持按鈕控件。

          復(fù)選框(Check Box)

          用來顯示某種可能的選擇,該項(xiàng)選擇是獨(dú)立的,用戶可以選中或取消該選項(xiàng)。在選項(xiàng)被選中的時(shí)候核選標(biāo)記出現(xiàn),選項(xiàng)被取消時(shí)核選標(biāo)記消失。MFC中由CButton類對(duì)核選框進(jìn)行支持,用戶可以通過SetCheck()函數(shù)和GetCheck()函數(shù)設(shè)置或獲取核選框當(dāng)前的狀態(tài)

          BST_UNCHECKED==((CButton*)GetDlgItem(IDC_CHECK_RES1))->GetCheck()
          ((CButton*)GetDlgItem(IDC_CHECK_RES1))->SetCheck(true);		

          編輯框(Edit Control)

          用來接收用戶輸入的字符串通過選擇編輯框的選項(xiàng),編輯框可以接收字符串、數(shù)字、密碼等;編輯框還可以設(shè)置成接收多行字符串的模式;可以自動(dòng)進(jìn)行大小寫轉(zhuǎn)換。編輯框可能向父窗口發(fā)送多種控件通知,如果用戶需要,可以對(duì)這些控件通知進(jìn)行處理。MFC提供了CEdit類支持編輯框控件

          GetDlgItem(IDC_***)->SetWindowText(Cstring);
           
          GetDlgItem(IDC_***)->GetWindowText(Cstring);

          組合框(Combo Box)

          列表框和編輯框的組合,用戶除了可以在列表中對(duì)已經(jīng)存在的選項(xiàng)進(jìn)行選擇外,還可以輸入新的選擇。MFC提供了CComboBox類對(duì)組合框控件進(jìn)行支持。

          CComboBox * AAA = (CComboBox*)(GetDlgItem(IDC_***));
           
          AAA->AddString(_T("***"));
           
          AAA->SelectString(0, _T("***"));
           
          AAA->SetCurSel(0);
           
           
          int nSel = AAA->GetCurSel();
           
          AAA->GetLBText(nSel, Cstring);
           
          if(strType.Trim() == _T("***"))

          列表框(List Box)

          用來選擇一系列的可能選擇,用戶通過滾動(dòng)條可以在這些選擇中瀏覽。在列表框中,可以進(jìn)行單項(xiàng)選擇,也可以進(jìn)行多項(xiàng)選擇,這取決于用戶在控件屬性對(duì)話框中的設(shè)置。MFC提供了CListBox類對(duì)列表框控件進(jìn)行支持。

          組成框(Group Box)

          用來包圍具有邏輯關(guān)系的一組控件,在這些控件的周圍加上邊界和標(biāo)題。需注意的是,組成框僅僅是在視覺效果上對(duì)控件進(jìn)行“成組”,真正的“成組”工作還需要另外一些工作。僅僅在視覺上展現(xiàn)出一組的邏輯關(guān)系,并不添加任何代碼

          單選按鈕(Radio Button)

          用來選擇某種可能的選擇,與 (Check Box)復(fù)選框不同,該選項(xiàng)不是獨(dú)立的

          一般是幾個(gè)單選按鈕組成一組同組中的單選按鈕僅有一個(gè)按鈕被選中

          MFC同樣使用CButton類對(duì)單選按鈕控件進(jìn)行支持

          SetCheck()函數(shù)和GetCheck()函數(shù)對(duì)單選按鈕也是適用的。

          靜態(tài)文本(Static Text)

          用來在指定的位置顯示特定的字符串一般用來標(biāo)識(shí)附近另一個(gè)控件的內(nèi)容。顯示在靜態(tài)文本控件中的字符串一般不再改變,但是在需要的時(shí)候,必須為其指定一個(gè)不同食物ID號(hào),通過調(diào)用相應(yīng)的函數(shù)來進(jìn)行設(shè)置。MFC提供了CStatic類支持靜態(tài)控件

          圖形控件(Picture Control)

          顯示位圖(Bitmap)和圖標(biāo)(Icon),圖形繪制與顯示,主要是其方形的區(qū)域適合顯示,同樣方形區(qū)域也可利用(Static Text)靜態(tài)文本框。

          滾動(dòng)條(Scroll Bar)

          這包括水平滾動(dòng)條和垂直滾動(dòng)條,除了在視覺效果上的方向不同外,水平滾動(dòng)條在被滾動(dòng)時(shí)發(fā)生WM_HSCROLL消息,而垂直滾動(dòng)條在被滾動(dòng)時(shí)發(fā)送WM_VSCROLL消息MFC提供了CScrollBar進(jìn)行支持

          滑塊控件(Slider Control)

          通常用來在程序中接受一系列離散的數(shù)值

          用戶可以設(shè)置滑塊控件的取值范圍,并可以為控件加上刻度標(biāo)記以顯示特定位置的含義。

          MFC提供了CSliderCtrl類進(jìn)行支持

          微調(diào)按鈕(Spin Button)

          包括一對(duì)緊靠在一起的上下箭頭,使用微調(diào)按鈕可以增大或者縮小某個(gè)特定的數(shù)值。

          微調(diào)按鈕往往都需要一個(gè)“伙伴”控件,這通常都是一個(gè)編輯框

          當(dāng)微調(diào)按鈕的向上箭頭被單擊時(shí),編輯框中的數(shù)字就增大;反之則減小MFC提供了CPinButtonCtrl類進(jìn)行支持

          進(jìn)度條(Progress Control)

          進(jìn)行一項(xiàng)需要較長時(shí)間的操作時(shí)來反應(yīng)當(dāng)前的進(jìn)度

          當(dāng)操作的進(jìn)度不斷前進(jìn)時(shí),進(jìn)度條就用特色顏色填充進(jìn)度條框。用戶可以設(shè)定進(jìn)度條的范圍和當(dāng)前位置。

          MFC提供了CProgressCtrl類進(jìn)行支持

          CProgressCtrl* progressbar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_1);
           
          progressbar->SetRange(0, 4);
           
          progressbar->SetPos(0);

          熱鍵控制(Hot Key)

          熱鍵控件看起來就像一個(gè)編輯框,但是在熱鍵控件中能夠立刻反應(yīng)用戶剛剛按下的鍵組合,這在設(shè)置程序的熱鍵時(shí)特別有用。

          熱鍵控件只是在“視覺”上顯示了按鍵組合,設(shè)置熱鍵的工作還需要用戶添加代碼完成。

          MFC提供了CHotKey類進(jìn)行支持

          列表控制(List Control)

          按一定的排列順序顯示一系列帶圖標(biāo)的字符串。

          列表控件提供了四種顯示模式:大圖標(biāo)(Icon)、小圖標(biāo)(Small Icon)、列表(List)和報(bào)表(Report)

          用戶可以向列表控件中添加新的項(xiàng),也可以控制列表控件的顯示模式。

          MFC提供了CListCtrl類進(jìn)行支持

          初始化:

           struct INFO { int id; CString time; CString type; }info; CString id; int nRow=0; id.Format(_T("%d"), info.id); m_ListCtrl.InsertItem(nRow,id); m_ListCtrl.SetItemText(nRow, 1, info.time); m_ListCtrl.SetItemText(nRow, 2, info.type); nRow ++;


          添加記錄:

           
          struct INFO
           
          {
           
          int id;
           
          CString time;
           
          CString type;
           
          }info;
           
          CString id;
           
          int nRow=0;
           
          id.Format(_T("%d"), info.id);
           
          m_ListCtrl.InsertItem(nRow,id);
           
          m_ListCtrl.SetItemText(nRow, 1, info.time);
           
          m_ListCtrl.SetItemText(nRow, 2, info.type);
           
          nRow ++;

          樹形控件(Tree Control)

          顯示一系列項(xiàng)目的層次關(guān)系最典型的例子是顯示磁盤上的文件與文件夾

          如果有子項(xiàng)目的話,單擊樹形控件中的項(xiàng)目可以展開或者收縮其子項(xiàng)目

          MFC提供了CTreeCtrl類進(jìn)行支持

          初始化

             void CConfigDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: 在此處添加消息處理程序代碼  CRect rcWnd; GetClientRect(&rcWnd);  CRect rcChild = rcWnd; rcChild.top = rcWnd.top+10; rcChild.bottom -=10; rcChild.left += 160; rcChild.right -= 10; CRect laneRect = rcChild;  if(::IsWindow(m_1Dlg)) m_1Dlg.MoveWindow(rcChild);  if(::IsWindow(m_2Dlg)) m_2Dlg.MoveWindow(rcChild);   if ( ::IsWindow( pTree.GetSafeHwnd() ) ) { pTree.MoveWindow(rcWnd.left+10,rcWnd.top+30,130,350,1); } }

          樹節(jié)點(diǎn)切換

             void CConfigDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); // TODO: 在此添加控件通知處理程序代碼 HTREEITEM hSelected=pNMTreeView->itemNew.hItem; if(hSelected!=NULL) { pTree.SelectItem(hSelected); int nDat = pTree.GetItemData(hSelected);  switch(nDat) { case 1: /*MessageBox(_T("YNAME"));*/ if(m_pPreWnd) m_pPreWnd->ShowWindow(SW_HIDE);  m_1Dlg.ShowWindow(SW_SHOW); m_pPreWnd = &m_1Dlg; break; case 3: /*MessageBox(_T("XNAME"));*/ if(m_pPreWnd) m_pPreWnd->ShowWindow(SW_HIDE);  m_2Dlg.ShowWindow(SW_SHOW); m_pPreWnd = &m_2Dlg; break;  default: break; } } *pResult = 0; }

          改變位置

             void CConfigDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: 在此處添加消息處理程序代碼  CRect rcWnd; GetClientRect(&rcWnd);  CRect rcChild = rcWnd; rcChild.top = rcWnd.top+10; rcChild.bottom -=10; rcChild.left += 160; rcChild.right -= 10; CRect laneRect = rcChild;  if(::IsWindow(m_1Dlg)) m_1Dlg.MoveWindow(rcChild);  if(::IsWindow(m_2Dlg)) m_2Dlg.MoveWindow(rcChild);   if ( ::IsWindow( pTree.GetSafeHwnd() ) ) { pTree.MoveWindow(rcWnd.left+10,rcWnd.top+30,130,350,1); } }

          屬性表控件(Tab Control)

          包含大量的控件,可以滿足用戶顯示或者獲取大量數(shù)據(jù)分類顯示的要求,典型例子是Windows任務(wù)欄每個(gè)程序標(biāo)簽。

          每個(gè)屬性表又分為好幾個(gè)屬性頁,這些屬性頁由各自的標(biāo)簽進(jìn)行區(qū)分,這些屬性頁中都可以包容其他控件

          在顯示屬性表的時(shí)候,一次只能夠顯示一個(gè)屬性頁的全部內(nèi)容,同時(shí)顯示其他屬性頁的標(biāo)簽,用戶通過單擊標(biāo)簽打開相應(yīng)的屬性頁。

          MFC提供了CTabCtrl類進(jìn)行支持

          初始化綁定變量

          m_tab_Light.DeleteAllItems();
           
          m_LightParkingDlg.DestroyWindow();
           
          m_LightStatusDlg.DestroyWindow();
           
          m_tab_Light.InsertItem(0, _T("0001")); // 插入第一個(gè)標(biāo)簽
           
          m_tab_Light.InsertItem(1, _T("0002")); // 插入第二個(gè)標(biāo)簽
           
           
          CRect tabRect; // 標(biāo)簽控件客戶區(qū)的位置和大小
           
          m_tab_Light.GetClientRect(&tabRect); // 獲取標(biāo)簽控件客戶區(qū)Rect
           
          // 調(diào)整tabRect,使其覆蓋范圍適合放置標(biāo)簽頁
           
          tabRect.left += 2;
           
          tabRect.right -= 1;
           
          tabRect.top += 21;
           
          tabRect.bottom -= 2;
           
          m_LightParkingDlg.Create(IDD_DIALOG_LIGHT_PARKING, &m_tab_Light); // 創(chuàng)建第一個(gè)標(biāo)簽頁
           
          m_LightStatusDlg.Create(IDD_DIALOG_LIGHT_STATUS, &m_tab_Light); // 創(chuàng)建第二個(gè)標(biāo)簽頁
           
          //m_LightParkingDlg.InitData();
           
          m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(),SWP_SHOWWINDOW);

          控件頁面切換

           CRect tabRect; // 標(biāo)簽控件客戶區(qū)的位置和大小
           
          m_tab_Light.GetClientRect(&tabRect); // 獲取標(biāo)簽控件客戶區(qū)Rect
           
          // 調(diào)整tabRect,使其覆蓋范圍適合放置標(biāo)簽頁
           
          tabRect.left += 2;
           
          tabRect.right -= 1;
           
          tabRect.top += 21;
           
          tabRect.bottom -= 2;
           
          switch (m_tab_Light.GetCurSel())
           
          {
           
           
          case 0:
           
          m_LightStatusDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
           
          m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
           
          break;
           
          case 1:
           
          m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
           
          m_LightStatusDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
           
          break;
           
           
          }

          動(dòng)畫控件(Animation):

          用來播放一段AVI格式的視頻剪輯。用戶可以控制視頻剪輯的播放、停止和定位,但也僅限于這些功能。動(dòng)畫控件設(shè)置不能播放音頻剪輯,如果用戶需要更高層次的視頻或者音頻的支持,請(qǐng)選用MCIWnd控件

          MFC提供了CAnimateCtrl類對(duì)動(dòng)畫控件進(jìn)行支持

          高級(jí)編輯框(Rich Edit)

          編輯控件(Edit Control)功能的擴(kuò)展。在高級(jí)編輯框中,除了簡單的輸入和編輯字符串外,用戶還可以為字符或段落指定特定的格式,用戶甚至還可以向高級(jí)編輯框中插入OLE項(xiàng)

          高級(jí)編輯框基本上實(shí)現(xiàn)了一個(gè)帶格式的文本編輯器功能,而只需要用戶添加少量的接口。

          MFC提供了CRichEditCtrl類進(jìn)行支持

          日期/時(shí)間選擇器(Date Time Picker)

          向用戶提供了一種直觀的選擇日期和時(shí)間的方法、日期/時(shí)間選擇器在外觀上類似于一個(gè)組合框,但是當(dāng)用戶單擊下拉箭頭時(shí)就會(huì)展開一個(gè)日歷控件供用戶選擇,而一旦用戶做出了選擇,日期/時(shí)間選擇器會(huì)自動(dòng)顯示新的日期/時(shí)間。MFC提供了CDateTimeCtrl類進(jìn)行支持。

          SYSTEMTIME times_1; //開始時(shí)間日期
           
          SYSTEMTIME timee_1; //結(jié)束時(shí)間日期
           
           
          CDateTimeCtrl* dtPickctrs_1 = (CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_START1); //獲取時(shí)間控件句柄
           
          CDateTimeCtrl* dtPickctre_1 = (CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_END1);
           
           
          memset(×_1,0,sizeof(times_1)); //時(shí)鐘初始化
           
          memset(&timee_1,0,sizeof(timee_1));
           
           
          dtPickctrs_1->GetTime(×_1); //獲取控件所選時(shí)間,保存至變量
           
          dtPickctre_1->GetTime(&timee_1);
           
           
           
          CString strTimeStart; //將時(shí)間轉(zhuǎn)換為字符串
           
          strTimeStart.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), times_1.wYear,times_1.wMonth,times_1.wDay,times_2.wHour,times_2.wMinute,times_2.wSecond);
           
          CString strTimeEnd;
           
          strTimeEnd.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), timee_1.wYear,timee_1.wMonth,timee_1.wDay,timee_2.wHour,timee_2.wMinute,timee_2.wSecond);
           


          獲取系統(tǒng)時(shí)間

          SYSTEMTIME time;
           
          ::GetLocalTime(&time);

          日歷控件(Month Calender)

          如下圖,看似與真正的日歷類似,操作也類似,直觀的為用戶提供了觀察和顯示當(dāng)前日期的途徑。MFC提供了CMonthCalCtrl類進(jìn)行支持

          IP地址控件(IP Adress)

          IP地址控件用來輸入和編輯IP地址MFC提供了CIPAddressCtrl類進(jìn)行支持

          該控件外觀類似于一個(gè)編輯框,但是可以自動(dòng)對(duì)輸入的字符按3個(gè)一組進(jìn)行區(qū)分和加間隔圓點(diǎn)。IP地址控件為開發(fā)支持Internet技術(shù)的程序提供了方便。

          擴(kuò)展組合框(Extended Combo Box)

          在普通組合框(Combo Box)的基礎(chǔ)上還支持圖像列表

          可以在組合框中顯示特定的圖標(biāo)表示相應(yīng)的選擇,而不僅僅是顯示文本。

          MFC提供了CComboBoxEx類進(jìn)行支持

          用戶自定義控件(Custom Control)

          控件使用的時(shí)候,它的Class必須有一個(gè)類的支持這個(gè)窗口類可以VC的類,例如:Button、Edit.在頭文件增加一個(gè)CEdit類的成員變量:CEdit m_Text(即點(diǎn)擊右鍵添加變量),然后按照Edit控件使用即可。


          超鏈接控件(SysLink Control ):

          1.用于在 MFC 應(yīng)用程序上添加超鏈接,就像html中的超鏈接一樣。你點(diǎn)下可以鏈接到一個(gè)網(wǎng)頁上去。拖控件到頁面上,并綁定一個(gè)變量(m_linkCtrl),里面的內(nèi)容全部是按照標(biāo)準(zhǔn)的html中href的用法寫的。寫錯(cuò)了自然鏈接不了的。

          可以去瞧下html里面的href屬性是怎/么設(shè)置的.另外要注意的是字符串中雙引號(hào)的處理(記得加個(gè)轉(zhuǎn)義符\),添加單擊響應(yīng)消息

          m_linkCtrl.SetWindowTextW(_T("<a href=\"http://blog.csdn.net/miko_xiaoming\">Miko's Note</a>"));
           
          PNMLINK pNMLink = (PNMLINK) pNMHDR;
           
          ShellExecuteW(NULL, L"open", pNMLink->item.szUrl, NULL, NULL, SW_SHOWNORMAL); //在瀏覽器中打開

          2.同按鈕(Button)控件一樣,響應(yīng)相應(yīng)的消息


          多按鈕組合控件(Split Button Control )

          如下圖,實(shí)現(xiàn)多選按鈕選擇功能,使用時(shí)添加相應(yīng)菜單


          網(wǎng)絡(luò)IP地址輸入輸出控件(Network Address Control):

          可以直接作為inet_addr(ip)的輸入,分隔符為逗號(hào)(,)

          指令按鈕控件(command button control)

          不僅可以為按鈕添加相應(yīng)命令還可以對(duì)命令做出注解

          所有控件的公共屬性:

          ID:控件的資源標(biāo)識(shí)。

          Visiable:控件是否可見。

          Disabled:控件是否被禁止、被禁止的控件無法接受鍵盤和鼠標(biāo)輸入。

          Group:是否從這個(gè)空間開始一個(gè)新組。

          Tab stop:在程序中是否可以用【Tab】鍵切換到這個(gè)控件。

          Help ID:是否給控件分配一個(gè)幫助標(biāo)識(shí),幫助標(biāo)識(shí)基于控件本身的資源標(biāo)識(shí)。

          Client edge:給控件增加一個(gè)凹陷的邊界,使整個(gè)控件看起來像是凹下去的一樣。

          Static edge:給控件增加一個(gè)邊界。

          Modal frame:給控件增加一個(gè)3維的框架,與Client edge相反,它是凸出來的。

          Transparent:擁有此屬性的窗口是透明的,它下面的窗口不會(huì)被它遮掩住。

          Accept files:擁有此屬性的窗口可以接收拖放文件,如果一個(gè)文件被拖動(dòng)到這個(gè)控件上面,控件會(huì)收到WM_DROPFILES消息。

          No parent notify:表示控件不向其父窗口發(fā)送WM_PARENTNOTIFY消息。

          Right aligned text:表示文本右對(duì)齊。

          以上屬性可通過控件的屬性對(duì)話框進(jìn)行設(shè)置,在屬性對(duì)話框中按【F1】鍵可以查看屬性的幫助信息。

          每一種控件都由一個(gè)MFC控件類來管理,當(dāng)通過資源編輯器在對(duì)話框上添加一個(gè)控件時(shí),visualC++會(huì)自動(dòng)為控件類生成一個(gè)實(shí)例,即對(duì)象,并調(diào)用構(gòu)造函數(shù),當(dāng)對(duì)話框關(guān)閉時(shí),其各個(gè)子控件對(duì)象被自動(dòng)銷毀。

          也可以不使用資源編輯器,自己在程序中寫代碼創(chuàng)建、顯示控件并設(shè)置控件的屬性。

          所有的控件類都來自CWnd,控件的某些操作和屬性設(shè)置需要用到CWnd本身的成員函數(shù),CWnd某些函數(shù)經(jīng)常用來操縱控件和設(shè)置控件屬性。

          SetWindowText:設(shè)置控件上要顯示的標(biāo)題文本,即用來設(shè)置控件的caption屬性

          GetWindowText:得到控件的標(biāo)題文本

          EnableWindow:設(shè)置控件的Disabled屬性,即社會(huì)自控件是否可以接收鍵盤和鼠標(biāo)的輸入

          SetWindowPos:改變窗口的大小、位置和Z軸次序。

          MoveWindow:改變窗口的大小和位置

          GetWindowRec:得到窗口的大小、位置(信息存放在一個(gè)矩形結(jié)構(gòu)中)。

          GetClientRect:得到窗口客戶區(qū)的大小(信息存放在一個(gè)矩形結(jié)構(gòu)中 )

          ShowWindow:設(shè)置窗口的可見性(即窗口是否可見)

          SetWindowText/GetWindowText還可以用來設(shè)置/得到對(duì)話框的標(biāo)題文本。

          福利來啦~

          學(xué)習(xí)從來不是一個(gè)人的事情,要有個(gè)相互監(jiān)督的伙伴,對(duì)于C/C++感興趣可以關(guān)注小編在后臺(tái)私信我:【編程交流】一起來學(xué)習(xí)哦!可以領(lǐng)取一些C/C++的項(xiàng)目學(xué)習(xí)視頻資料哦!

          CGControlBar庫擁有500多個(gè)經(jīng)過全面設(shè)計(jì)、測(cè)試和充分記錄的MFC擴(kuò)展類。 我們的組件可以輕松地集成到您的應(yīng)用程序中,并為您節(jié)省數(shù)百個(gè)開發(fā)和調(diào)試時(shí)間。

          BCGControlBar專業(yè)版和BCGSuite for MFC v33.3已正式發(fā)布了,該版本包含了增強(qiáng)的Ribbon自定義、新的日期/時(shí)間數(shù)字指示器、帶有文本對(duì)齊的組控件、多行支持以及其他一些新功能和改進(jìn)。最新版點(diǎn)擊下方獲取:

          BCGControlBar Professional Edition for MFC官方最新版免費(fèi)下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網(wǎng)

          編輯控件

          1. 實(shí)現(xiàn)了使用單個(gè)輸入字符在所選文本周圍切換為注釋的功能(例如在c++語言中的'/'),啟用此功能的最簡單方法是向XML設(shè)置文件添加一個(gè)新標(biāo)記CommentString,或者調(diào)用一個(gè)新方法CBCGPEditCtrl::EnableCommentingSelectedText,此外CBCGPEditCtrl類增加了以下新方法:

          • IsCommentingSelectedTextEnabled
          • CommentSelectedText
          • CommentText
          • GetCommentChars

          2. 增加了一個(gè)新的方法HasSelection:這個(gè)方法告知一些文本是否被選中。

          其他增強(qiáng)

          1. Stdafx.cpp/.h文件重命名為BCGPStdAfx.cpp/.h(以避免在用戶應(yīng)用程序中引用不正確的預(yù)編譯頭文件)。

          2. CBCGPBaseVisualObject:當(dāng)父窗口接收WM_SETTINGCHANGE消息時(shí),一個(gè)新的虛擬方法OnSystemSettingChange被調(diào)用。

          3. CBCGPPropertyManager:方法LoadValuesFromRegistry有一個(gè)新的可選參數(shù)'bNotifyChanges'(默認(rèn)為FALSE)。如果此參數(shù)為TRUE,并且從注冊(cè)表加載的屬性值不是默認(rèn)值,則此屬性將調(diào)用OnPropertyChanged。

          4. CBCGPLightBoxDialogOptions有一個(gè)新成員m_bDisableParentWindow(默認(rèn)值是FALSE),當(dāng)此屬性為TRUE時(shí),整個(gè)父幀被禁用并顯示為灰色,因此用戶不能調(diào)整大小或移動(dòng)它。

          5. 一個(gè)新的助手類CBCGPInfoBoxView簡化了創(chuàng)建帶有嵌入式信息框的cview派生類,如果開發(fā)人員需要?jiǎng)?chuàng)建一個(gè)簡單的信息視圖,請(qǐng)從CBCGPInfoBoxView派生您的類,并在類構(gòu)造函數(shù)中調(diào)用SetInfoText。

          6. 改進(jìn)了幾個(gè)控件的打印:

          • Calendar (Planner):打印內(nèi)容與查看內(nèi)容相同。
          • 網(wǎng)格和編輯控件:改進(jìn)了用于打印的字體和布局。

          7. CBCGPGridCtrl:添加了以下新的訪問方法(用于獲取/更改默認(rèn)的導(dǎo)出標(biāo)志)。

          • SetDefaultExportToHtmlFlags
          • GetDefaultExportToHtmlFlags
          • SetDefaultExportToCsvFlags
          • GetDefaultExportToCsvFlags

          isual c++ 供 了 功 能 強(qiáng) 大 的 類 庫, 基 本 上 應(yīng) 用 開 發(fā) 的 要 求, 但 對(duì) 于 某 特 殊 要 面, 如 圖 像 兼 文 字 的 按 , 列 表 框 中 入 圖 像, 中 國 報(bào) 表 等 等, 仍 得 力 不 從 心, 因 而 很 有 必 要 創(chuàng) 建 擴(kuò) 展MFC 類 庫, 以 滿 足 實(shí) 際 開 發(fā) 的 求。But,Toolkit Pro 是MFC開發(fā)中最全面界面控件套包,它提供了Windows開發(fā)所需要的11種主流的Visual C++ MFC控件。 根據(jù)需要可進(jìn)行下載體驗(yàn)!

          本文通過實(shí)例說明MFC工具欄的創(chuàng)建、設(shè)計(jì)和使用方法,包括三個(gè)demo。

          demo1:創(chuàng)建一個(gè)工具欄

          C++代碼

          //摘抄自MSDN
          demo1 (創(chuàng)建一個(gè)工具欄)
          1.Create a toolbar resource.
          /*可以先插入一個(gè)新的工具欄資源
          添加分隔符,將按鈕向右拖動(dòng)一小下
          刪除按鈕,將按鈕拖動(dòng)出工具欄
          */
          2.Construct the CToolBar object.
          /*
          工具欄是 CToolBar 對(duì)象,聲明為應(yīng)用程序的 CMainFrame 類的數(shù)據(jù)成員。也就是說,工具欄對(duì)象嵌入到主框架窗口對(duì)象中。這意味著 MFC 在創(chuàng)建框架窗口時(shí)創(chuàng)建工具欄,在銷毀框架窗口時(shí)銷毀工具欄。
          */
          3.Call the Create (or CreateEx) function to create
          the Windows toolbar and attach it to the CToolBar object.
          4.Call LoadToolBar to load the toolbar resource.
          /*
          工具欄創(chuàng)建發(fā)生在 CMainFrame::OnCreate 中。MFC 在創(chuàng)建框架窗口之后且在窗口可見之前調(diào)用 OnCreate。
          在 OnCreate 中調(diào)用適當(dāng)?shù)暮瘮?shù)來停靠或浮動(dòng)工具欄、設(shè)置它的樣式等。
          應(yīng)用程序向?qū)А鄙傻哪J(rèn) OnCreate 執(zhí)行以下工具欄任務(wù):
          1.調(diào)用 CToolBar 對(duì)象的 Create 成員函數(shù)來創(chuàng)建基礎(chǔ) CToolBarCtrl 對(duì)象。
          2.調(diào)用 LoadToolBar 來加載工具欄資源信息。
          3.調(diào)用函數(shù)來啟用停靠、浮動(dòng)和工具提示。
          */
          class CMainFrame : public CMDIFrameWnd
          {
          // ...
          // Implementation
          // ...
          protected:  // control bar embedded members
          CStatusBar  m_wndStatusBar;
          CToolBar    m_wndToolBar;
          // Generated message map functions
          protected:
          afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
          DECLARE_MESSAGE_MAP()
          };
          int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
          {
          if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
          return -1;
          //框架類中m_wndMyToolBar成員變量先調(diào)用CreateEx函數(shù),再調(diào)用LoadToolBar函數(shù)
          if (! m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
          | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
          ! m_wndToolBar.LoadToolBar(IDR_MYTOOLBAR))
          {
          TRACE0("Failed to create toolbar\n");
          return -1;      // fail to create
          }
          //調(diào)用CToolBar中的成員函數(shù)設(shè)置工具欄可停靠的位置
          m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
          //調(diào)用框架類中的成員函數(shù)設(shè)置哪里可以被停靠
          EnableDocking(CBRS_ALIGN_ANY);
          //Points to the control bar to be docked.
          DockControlBar(&m_wndToolBar);
          return 0;
          }


          demo2:停靠和浮動(dòng)工具欄


          C++代碼


          demo2 (停靠和浮動(dòng)工具欄)
          /*
          如果使用“應(yīng)用程序向?qū)А眮砩蓱?yīng)用程序的主干,向?qū)⒁竽x擇是否想要可停靠的工具欄。
          默認(rèn)情況下,“應(yīng)用程序向?qū)А鄙纱a來執(zhí)行將可停靠工具欄放置在應(yīng)用程序中所需的三個(gè)操作:
          1.在框架窗口中啟用停靠。
          2.為工具欄啟用停靠。
          3.停靠工具欄(靠向框架窗口)。
          如果這些步驟中的任何一個(gè)缺少,應(yīng)用程序都將顯示標(biāo)準(zhǔn)工具欄。
          后兩個(gè)步驟對(duì)應(yīng)用程序中的每一個(gè)可停靠工具欄都必須執(zhí)行。
          */
          CFrameWnd::EnableDocking()//在框架窗口中啟用停靠
          /*
          若要將工具欄停靠到某個(gè)框架窗口,則必須啟用該框架窗口(或目標(biāo))以允許停靠。
          這可通過使用 CFrameWnd::EnableDocking 函數(shù)來實(shí)現(xiàn),該函數(shù)采用一個(gè) DWORD 參數(shù),這是一組指示框架窗口的哪一個(gè)邊接受停靠的樣式位。
          如果一個(gè)工具欄即將停靠并且有多個(gè)邊可以停靠,則在傳遞給 EnableDocking 的參數(shù)中指示的邊按以下順序使用:頂邊、底邊、左邊、右邊。
          如果希望能夠?qū)⒖刂茥l停靠在任意位置,請(qǐng)將 CBRS_ALIGN_ANY 傳遞給 EnableDocking。
          */
          CControlBar::EnableDocking()//為工具欄啟用停靠
          /*
          準(zhǔn)備好停靠目標(biāo)后,必須以相似的方式準(zhǔn)備工具欄(或源)。為想要停靠的每一個(gè)工具欄調(diào)用 CControlBar::EnableDocking,指定工具欄應(yīng)停靠的目標(biāo)邊。如果在 CControlBar::EnableDocking 調(diào)用中所指定的邊沒有一個(gè)與框架窗口中為停靠啟用的邊匹配,則工具欄無法停靠(它將浮動(dòng))。
          工具欄一旦浮動(dòng),將保持為浮動(dòng)工具欄,不能停靠到框架窗口。
          如果希望工具欄永久浮動(dòng),請(qǐng)調(diào)用參數(shù)為 0 的 EnableDocking。然后調(diào)用 CFrameWnd::FloatControlBar。工具欄將保持浮動(dòng),永遠(yuǎn)不能在任意位置停靠。
          */
          CFrameWnd::DockControlBar()//停靠工具欄
          /*
          當(dāng)用戶試圖將工具欄放置在允許停靠的框架窗口某一邊時(shí),框架調(diào)用 CFrameWnd::DockControlBar。
          另外,可以隨時(shí)調(diào)用該函數(shù)將控制條停靠在框架窗口中。這通常在初始化過程中完成。
          框架窗口的具體某個(gè)邊上可停靠多個(gè)工具欄。
          */
          CFrameWnd::FloatControlBar()//浮動(dòng)工具欄
          /*
          從框架窗口分離可停靠工具欄稱為浮動(dòng)工具欄。調(diào)用 CFrameWnd::FloatControlBar 來執(zhí)行該操作。指定要浮動(dòng)的工具欄、將放置的點(diǎn)以及決定浮動(dòng)工具欄是水平還是垂直的對(duì)齊樣式。
          當(dāng)用戶拖動(dòng)工具欄離開停靠位置并將它放置在一個(gè)未啟用停靠的位置時(shí),框架調(diào)用該函數(shù)。
          這可以是框架窗口的內(nèi)部或外部的任意位置。同 DockControlBar 一樣,也可以在初始化過程中調(diào)用該函數(shù)。
          可停靠工具欄的 MFC 實(shí)現(xiàn)不提供一些支持可停靠工具欄的應(yīng)用程序中有的擴(kuò)展功能。諸如可自定義工具欄這樣的功能不提供。
          */
          int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
          {
          //...
          //部分代碼略
          //...
          //調(diào)用CToolBar中的成員函數(shù)設(shè)置工具欄可停靠的位置
          m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
          //調(diào)用框架類中的成員函數(shù)設(shè)置哪里可以被停靠
          EnableDocking(CBRS_ALIGN_ANY);
          //Points to the control bar to be docked.
          DockControlBar(&m_wndToolBar);
          return 0;
          }

          demo3:點(diǎn)擊菜單項(xiàng)顯示和隱藏工具欄

          C++代碼

          demo3 (點(diǎn)擊菜單項(xiàng)顯示和隱藏工具欄)
          CFrameWnd::ShowControlBar//顯示和隱藏菜單項(xiàng)
          void ShowControlBar( CControlBar* pBar, BOOL bShow, BOOL bDelay );
          void CMainFrame::OnViewNewtool()
          {
          ShowControlBar(&m_newToolBar,!m_newToolBar.IsWindowVisible(),FALSE);//控制顯示和隱藏
          }
          void CMainFrame::OnUpdateViewNewtool(CCmdUI* pCmdUI)
          {
          // TODO: Add your command update UI handler code here
          pCmdUI->SetCheck(m_newToolBar.IsWindowVisible());//為菜單項(xiàng)打標(biāo)記
          }

          MFC擴(kuò)展類庫

          在平時(shí)練習(xí)的時(shí)候我們可以自己手動(dòng)進(jìn)行,但是一旦接受一些項(xiàng)目,應(yīng)用程序開發(fā)等,對(duì)界面的要求就會(huì)高出許多。這時(shí)候就有必要借助這些“半成品”實(shí)現(xiàn)界面美化提升效率。這里簡單介紹一下,具體可點(diǎn)進(jìn)去查看每個(gè)的詳情以及教程,案例!

          Toolkit Pro

          Codejock軟件公司的Xtreme Toolkit Pro是屢獲殊榮的VC界面庫,是MFC開發(fā)中最全面界面控件套包,它提供了Windows開發(fā)所需要的11種主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。

          BCGControlBar ("Business Components Gallery ControlBar")是MFC擴(kuò)展庫,使您可以創(chuàng)建具有完全自定義選項(xiàng)(功能區(qū)、可自定義工具欄、菜單等)以及一組專業(yè)設(shè)計(jì)的豐富Microsoft Office和Microsoft Visual Studio的應(yīng)用程序 GUI控件,例如圖表、日歷、網(wǎng)格、編輯器、甘特圖和許多其他控件。
          BCGControlBar庫擁有500多個(gè)經(jīng)過全面設(shè)計(jì)、測(cè)試和充分記錄的MFC擴(kuò)展類。可以輕松地集成到你的應(yīng)用程序中,并為你節(jié)省數(shù)百個(gè)開發(fā)和調(diào)試時(shí)間。

          轉(zhuǎn)載自:http://www.jizhuomi.com/software/494.html

          關(guān)注我或者點(diǎn)擊下方“了解更多”獲取一手開發(fā)資訊哦!


          主站蜘蛛池模板: 国产主播福利一区二区| 国产精品毛片一区二区三区 | 久久国产精品最新一区| 91成人爽a毛片一区二区| 人妻久久久一区二区三区| 国产人妖在线观看一区二区| 中文字幕无码一区二区三区本日| 美女毛片一区二区三区四区| 精品视频一区在线观看| 国产suv精品一区二区33| 人妻精品无码一区二区三区| 中日韩一区二区三区| 亚洲av无码成人影院一区| 精品人体无码一区二区三区 | 小泽玛丽无码视频一区| 国产欧美一区二区精品仙草咪| 日本大香伊一区二区三区| 精品国产一区二区三区久久狼| 精品无码综合一区| 国产成人综合亚洲一区| 精品人妻无码一区二区三区蜜桃一 | 中文无码AV一区二区三区| 成人久久精品一区二区三区| 日韩精品视频一区二区三区| 国模大尺度视频一区二区| 一区二区三区中文字幕| 国产精品一区二区无线| 日韩一区在线视频| 国产精品亚洲一区二区无码| 女女同性一区二区三区四区| 亚洲变态另类一区二区三区| 日韩中文字幕精品免费一区| 亚洲AV香蕉一区区二区三区| 精品一区二区三区四区在线播放 | 亚州国产AV一区二区三区伊在| 麻豆va一区二区三区久久浪| 女人18毛片a级毛片一区二区| 欧洲精品免费一区二区三区 | 久久精品免费一区二区| 国产美女一区二区三区| 国产精品久久久久一区二区三区|