(精品)VC++MFC控件知識點134_第1頁
(精品)VC++MFC控件知識點134_第2頁
(精品)VC++MFC控件知識點134_第3頁
(精品)VC++MFC控件知識點134_第4頁
(精品)VC++MFC控件知識點134_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 按鈕控件1.1 如何使用按鈕控件方法是雙擊編輯對話框按鈕圖標加按鈕單擊后要做的事是什么.,之后就進入了這個按鈕單擊的處理函數,在這里,你可以添1.2 如何讓按鈕顯示圖標樣式首先進入 ResourceView 圖標的 ID 名為 IDI_ICON2里,然后右擊 Icon 選擇插入,之后選擇你要的圖標,假設這個,那么下一步,就是進入對話類中的 OnPaint() 函數,并在else里面添加如下語句:m_Quit.SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2); 注: m_Quit 為要顯示圖標按鈕的關聯類;還

2、要說明的是,必須把按鈕屬性樣式里把圖標的構給打上才行,要不然是無法顯示圖標的。13 如何讓按鈕顯示文本信息先要在對話框添加一個 CToolTipCtrl 類的對象,如: CToolTipCtrl m_ToolTip; 然后在 OnInitDialog 添加以下語句:m_ToolTip.Create(this);m_ToolTip.AddTool(&m_Confirm,文”本信息 ” );/m_Confirm為要顯示文本按鈕關聯的類對象然后在類視圖窗口中右擊對話框類,在彈出的菜單中選擇Add VirtualFuntion, 然后再雙擊PreTranslateMessage;添加右邊窗口中去,這樣

3、便增加了一個方法,在此方法中添加以下語句m_ToolTip.RelayEvent(pMsg);既可;2.復選框控件2.1 如何使用復選框控件復選框控件是有一個X 的圖標,比如是三個復選框吧,首先各為三個復選框關聯一個控件類,比如是 m_Vip,m_Manager,m_Commoner; 那么調用 m_Vip.GetCheck(); 返回的是一個整數,如果返回值等于BST_CHECKED ;那么此類關聯的復選框控件就被選中了。如果要獲取此類關聯控件的文本信息就用 m_Vip.GetWindowText(Modal); 其中 Modal 是一個 CString 類的對象,跟 Edit 是差不多的,

4、存儲有信息。進度條控件3.1 如何使用進度條控件先為控件關聯一個類,如 m_Progress; 那么先要為進度條的控件設定一個范圍,比如設定099999;就用 SetRange32() 函數。如: m_Progress.SetRange32(0,99999); 這樣,當調用 m_Progress.SetPos(50000); 時,進度條就會顯示在一半左右。要顯示就是不停的調用。編輯顯示,似乎要SetWindowText,UpdateData不行。也好像只是靜態控件才可以顯示;4.編輯框控件4.1 編輯框數據的輸出與獲取編輯框數據的輸出與獲取有兩種方法 ,第一種 ,為編輯框關聯一個 CONTRO

5、L 類型的類,假如是 m_OutResult ,那么要獲取數據,就先定義一個 CString 類的對象,假如為 m_Data;那么m_OutResult.GetWindowText(m_Data);此時, m_Data 就存儲有編輯框里的內容。輸出就用SetWindowText 函數,如CStringm_Data= ” abcdefg ” ;m_OutResult.SetWindowText(m_Data);或者把括號里的m_Data 換成 “ abcdefg ”;第二種方法是直接為編輯框關聯一個 VALUE 的類型,有 CString,double,int 等等類型,假如為 CString

6、類型,名也為 OutResult; 此時如果要獲取該編輯框信息就調用UpdateData(FALSE); 調用之后, OutResult 就存儲有編輯框里的信息了。如果要輸出的話;比如要輸出 ”abcdefg ”;那么就是下面語句:OutResult= ”abcdefg ”;UpdateData(TRUE);這樣就更新數據到編輯框里了,可以推斷,如果編輯框里只是int 類型,那么就選int; 而 double 就是 double;42 如何進行換行輸出右擊編輯框,選擇屬性,然后在樣式里把多行的勾給打上,這樣,只要輸出字符串里有rn,就可以了,也就是說,只要遇到這兩具轉義字符,就進行換行。4 3

7、 如何響應編輯輸入數字消息就是如果在編輯輸入值,就會立即執行相應的函數,方法,是添加這個編輯控件ID 的 OnChange 消息函數編輯框字體和顏色的設置設置字體首先添加一個編輯控件,關為其關聯一個對象如:m_Content;然后在對話框定義一個類字體對象如: CFont m_EditFont; 這樣在對話框初始部分添加以下語句:m_EditFont.CreateFont(24,20,0,0,400,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,600,DEFAULT_PITCH, 宋體 ); m_Content.Se

8、tFont(&m_EditFont);關于函數參數的意思,在VC+ 編譯器里,輸入參數的時候,會有提示的。好好研究一下;162 設置顏色添加一個對話框WM_CTLCOLOR消息處理函數,然后就在這個函數里添加以下語句:if(nCtlColor=CTLCOLOR_EDIT)pDC-SetTextColor(RGB(255,0,0);就可以了,我想你應該明白語句的意思;5圖像控件51 如何使用圖像控件先得插入一個位圖文件,似乎只支持256 色及其以下的圖片,方法是:切換到RESOURCEVIEW窗口右擊 ICON 選擇插入再選擇BITMAP接著按引入。按了之后,就多出了個 BITMAP文件,看一下

9、你插入位圖的ID ,之后再到對話框中,右擊圖像框,選擇屬性。在類型選項框里選擇位圖,再在下面那個圖像選項框選擇要顯示位圖的ID ,就行了。52 如何動態加載位圖先為圖像控件關聯一個類,圖像控件屬性對話框里的類型選擇位圖。注:由于默認是靜態ID 所以得改一個ID 名才行,類名為m_Bmp;之后在按鈕單擊事件加入以下語句:CFileDialogflDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,位圖|*.bmp|);/ 文件對話框類對象if(flDlg.DoModal()=IDOK)/顯示文件對話框CString szBmpName;

10、szBmpName=flDlg.GetPathName();/ 獲取選擇路徑名,如位圖,文本。HBITMAPhOldBmp=m_Bmp.SetBitmap(HBITMAP)LoadImage(NULL,szBmpName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);/加載位圖文件DeleteObject(hOldBmp);/ 釋放位圖文件資源列表框控件61 如何使用列表框控件要往列表框控件添加內容有兩個函數一個是AddString(); 另一個是InsertString(); 第一個函數只有一個參數,而第二個有兩個。首先要為列表框控件關聯一個 control 類,這里我

11、們取名為 m_DataList; 如果我要控件框顯示內容為數學,語文,英語,那么就是m_DataList.AddString( 數學“”);m_DataList.AddString( 語文“”);m_DataList.AddString( 英語“” );那么這時候從上到下的排列沒有按照語句的先后進行排列,如果要想按照語句的先后順序進行排列的話,則只要進入控件的屬性,選擇樣式,把分類的勾給去掉,就可以了。如果我想再加一個內容呢,并要排在第二位,要怎么做呢?那就得用第二個函數呢,比如我要加一個程序,則 m_DataList.InsertString(2,程序”);就可以了。那么要如何獲得用戶選擇的

12、內容呢,這里獲取方法,跟組合框一樣,用 Index=GetCurSel(); 返回用戶當前選擇內容的索引,然后調用 m_ListBox.GetText(Index,csSubject);/ 獲得索引的內容 ,第二個參數為 CString 我們發現,上面的這種只可以單選。如果有多選要怎么做呢?又有兩種方法。第一種,把 m_DataList 改為 CCheckListBox 類的對象。然后再在控件的屬性對話框中把所有者繪制選擇固定,把下面那個有字符串的勾給打上。而第二種就更簡單了,只要把屬性對話框的 選擇 選上 多個 就行,這里要注意了,下面那個所有繪制要選 NO。但要如何獲得哪些內容被選定呢?似

13、乎列表不像復選框,可以為每一個內容關聯一個類,所以,要想獲取選擇了哪此內容必須得知道有多少個內容,這里用GetCount(); 函數就可以了,函數返回的是一個整型值。如:int ListCount=m_DataList.GetCount();for(i=0;iListCount;i+)if(m_DataList.GetCheck(i)=BST_CHECKED)/被選中m_DataList.GetText(i,Content);/ 就獲取內容; Content 為一個 CString 類型;以上獲取方法好像只應用于CCheckListBox的對象;7列表(視圖)控件71 如何使用列表控件首先新建

14、一個基于對話的程序,然后,在對話框里添加一個列表控件,并為控件關聯一個類,假設這里我們關聯的類名為m_UserList;既然是列表視圖控件,那圖片是從哪里來呢,從圖像列表控件哪里獲取,先把8。 1 做好,再在OnInitDialog后面加以下語句:m_UserList.SetImageList(&m_ImageList,LVSIL_NORMAL);m_UserList.InsertItem(0, 小明 ,0);m_UserList.InsertItem(1, 小強 ,1);m_UserList.InsertItem(2, 小花 ,2);但要如何獲得被獲取的內容呢?用GetSelectionMa

15、rk();如:int nSel=m_UserList.GetSelectionMark();/3個圖標,估計返回值是02if(nSel!=-1)CString szUser=m_UserList.GetItemText(nSel,0);/ 獲取圖標文本內容MessageBox(szUser,你選擇的用戶是 );7.2 如何給列表視圖設置背景按照以上方法給控件關聯一個對象;然后在一個對話框類后面為APP 結束的類中的InitInstance 方法中,最下面的那個#endif 中的下一行加入這個語句:AfxOleInit();然后,在對話框初始化部分加以下語句:m_List.SetBkImage(

16、e:001.bmp,TRUE,1,1);/假設列表視圖控件的對象為m_List;m_List.SetTextBkColor(CLR_NONE);SetBkImage 函數中第一個參數是位圖路徑名第二個參數,為真表示以平鋪的方式顯示位圖;8圖像列表控件 ImageList8.1 圖像控件的使用圖像列表控件和其它不一樣,可以在控件窗口找到,如果要使用圖像列表控件,必須自己定義一個,比如在對話框類里定義一個圖像列表對象;CImageList m_ImageList;圖像是圖標,比如先插入三個圖標吧。插入之后,在對話框初始化(OnInitDialog方法)中,添加以下語句:m_ImageList.Cr

17、eate(32,32,ILC_COLOR24|ILC_MASK,1,0);m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1);m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2);m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3);上面那個 IDI 是圖標的ID ;如果要想圖標在窗口顯示,就要在OnPain

18、t 方法ELSE添加以下語句:CDC *pDC=GetDC();CPoint pt;pt.x=30;pt.y=50;for(int i=0;iFillRect(CRect(0,0,50,20),&CBrush(m_clColor);10樹視圖控件101 如何使用樹圖控件先為視圖關聯一個類,名為 m_OrgInfo; 再在對話框增加一個圖像列表控件的對象成員。如: CImageList m_ImageList; 然后再在 OnInitDialog 函數插入以下語句: m_ImageList.Create(24,24,ILC_COLOR24|ILC_MASK,1,1);m_ImageList.Ad

19、d(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1);m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2);m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3);m_OrgInfo.SetImageList(&m_ImageList,TVSIL_NORMAL);HTREEITEM hProvince=m_OrgInfo.InsertIte

20、m(吉林省 ,0,0);/0 , 0 根結點HTREEITEMhTown=m_OrgInfo.InsertItem(松原市 ,1,1,hProvince);/*1 , 1 子結點,第二,屬于hProvince;*/m_OrgInfo.InsertItem(m_OrgInfo.InsertItem(m_OrgInfo.InsertItem(白城市 ,1,1,hProvince);/ 同上懷化市 ,2,2,hTown);/2.2子結點,第三,屬于hTown湖南省 ,0,0);/ 根結點11標簽控件 TapControl11.1 如何使用標簽控件。標簽控件里的每一個控件其實是一個對話框,只不過這個對

21、話框屬性樣式里那個樣式要選為下層,邊框選擇細小,然后把那個標題欄的勾給去掉。這樣當按了標簽,就調用相應的對話框,對話框要用非模式調用。如何添加標簽的數量,和每個標簽的信息呢,這里要用到 InsertItem 函數,先為標簽關聯一個類名為 m_Tap; 這樣,如果我要添加兩個標簽就是:m_Tap.InsertItem(0,圖書”基礎信息 ” ,0);m_Tap.InsertItem(1, 圖書信息”刪除 ” ,1);有一個問題,要如何知道用戶當前選擇的是哪個一標簽呢?在這里我們得用GetCurSel數;函如 int nCurSel=m_Tap.GetCurSel(); 這樣函數的返回值就是當前用

22、戶所選擇標簽的號碼。記住:調用對話框,要包含頭文件。這樣:在主對話框OnInitDialog中插入以下語句:m_Tap.InsertItem(0, 圖書基礎信息,0);/ 第三個參數表示圖像索引m_Tap.InsertItem(1, 圖書信息刪除 ,1);m_BookInfo.Create(IDD_DIALOG1,&m_Tap);m_BookDelete.Create(IDD_DIALOG2,&m_Tap);CRect clientRC;m_Tap.GetClientRect(clientRC);clientRC.DeflateRect(2,30,2,2);m_BookInfo.MoveWin

23、dow(clientRC);m_BookDelete.MoveWindow(clientRC);m_BookInfo.ShowWindow(SW_SHOW);m_Tap.SetCurSel(0);而用戶點擊標簽控件,就如同按鈕控件,雙擊標簽控件,添加用戶單擊標簽處理事件。滑塊控件121 如何使用滑塊控件要想使用滑塊控件,先來說說滑塊控件關聯類的幾個成員函數,SetRange 這個函數用于設置滑塊的范圍。GetPos 用于獲得當前滑塊的位置,SetPos 設置滑塊的位置。首先我們來為滑塊控塊關聯一個對象,如m_RSlider;然后在OnInitDialog 方法中設定范圍即:m_RSlider.

24、SetRange(0,255);這里有一個問題了,如何找到滑塊控件的消息滑動處理函數呢,像按鈕一樣雙擊嗎?這樣是不行的,必須自己添加一個滑動消息處理函數,方法是,按CTRL+W 組合鍵,選擇MessageMap;在 Object IDs 選擇滑塊控塊的ID然選中左側ONRELEASEDCAPTURE然后再點擊ADDFUNTION就樣添加了一個滑動消息處理函數,在這個函數里你就可心處理滑塊滑動的事件。如在這個函數加以下語句:|CString OutResult;OutResult.Format(%d,m_RSlider.GetPos();MessageBox(OutResult);/m_RSli

25、der.SetPos(0);除了上面那個方面獲取滑塊滑動,還有什么其它的方法呢?當然有:在對話框添加一個 WM_HSCROLL; 這個是什么意思呢?意思是只要對話框有任何水平滑塊滑動,這個消息的關聯的函數,都會被執行,但要如何判斷,是滑了哪一個滑塊呢?看下面代碼:if(nSBCode=SB_THUMBTRACK)if(pScrollBar-m_hWnd=m_RSlider.m_hWnd)/m_RSlider 為滑塊關聯的 ID m_nRValue=nPos;UpdateData(FALSE);if(pScrollBar-m_hWnd=m_GSlider.m_hWnd)m_nGValue=nPo

26、s;UpdateData(FALSE);if(pScrollBar-m_hWnd=m_BSlider.m_hWnd)m_nBValue=nPos;UpdateData(FALSE);字體對話框往對話,框里添加一個編輯框控件,并關聯類對象為m_Edit; 再在對話框類中,添加一個字體對象,即CFont font; 接著在按鈕單擊事件添加如下語句:CFontDialog ftDlg;if(ftDlg.DoModal()=IDOK)LOGFONT logFont;ftDlg.GetCurrentFont(&logFont);font.CreateFontIndirect(&logFont);m_Edit.SetFont(&font);上面那個 if 判斷是非常有必要的,如果沒有此判斷語句而用戶選擇了取消的話,將會出錯,因為不管用戶如何選擇,都會設置字體。靜態文本控件151 如何使用靜態文本控件先在對話框添加一個文本控件,然后右擊選擇屬性,接下來怎么做就不用我說了,這里主要說一個怎么通過點擊靜態文本控件而達到訪問網頁的效果,首先為靜態文本控件關聯一個對象,在這里,使用用類向導不能直接為其關聯,用什么方法呢?把文本控件對應的 ID 號給改了,就可為其關聯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論