《用戶界面設計》word版
《《用戶界面設計》word版》由會員分享,可在線閱讀,更多相關《《用戶界面設計》word版(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、用戶界面設計1 一,控件: 1,選定和放置控件,在進行MFC程序設計的時候系統(tǒng)會為我們提供一個控件面板,用戶可以選擇自己想要的控件然后放到對話框當中。用鼠標單擊來選擇控件,對于對話框中的控件可以用鼠標單擊來選擇也可以按住Shift鍵來選擇多個控件,也可以拖拉來選擇多個控件。 2,按件的大小和位置也是可以改變的,可以用鼠標拖動來選擇控件想放置的地方,如果我們想去改變對話框控件的大小可以選中控件這個時候控件就會出現(xiàn)虛邊框,在這個虛邊框的焦點處拖動鼠標來改變控件的大小。 3,控件的復制、粘帖、刪除: 記住幾個快捷鍵:ctrl+c,ctrl+v,delete 4,控件的對齊:如果有多個控件的
2、時候想去對齊多個控件Visual C++給我們提供了多個對齊的方式在"布局"菜單中可以找到多種對齊方式 MFC之常用控件: CStatic,靜態(tài)控件 這個控件是用來顯示方本的,不會接受用戶的輸入,但是如果這個控件有SS_NOTIFY風格的話它可以通知鼠標消息到父窗口 CStatic控件的主要方法: Create方法:用來創(chuàng)建一個文本窗口并把它關聯(lián)到一個CStatic對象上 BOOL Create(LPCTSTR lpszText,DWORD dwStyle,CONST RECT&rect,CWnd*pParentWnd,UINT nID=0xffff); 各參數(shù)的含義: lps
3、zText表示的是控件的文本, dwStyle表示設置控件的風格 rect表示設定控件的顯示區(qū)域 pParentWnd用來確定控件的父窗口的指針 nID用于設定控件的ID值 GetStyle:獲取控件的風格 DWORD GetStyle()const; GetExStyle:這個是用來獲取控件的擴展風格 DWORD GetExStyle()const; SetBitmap:這個函數(shù)是用來把一個位圖關聯(lián)到CStatic控件當中這個時候要注意的就是會把控件改變大小來適應位圖的大小,而不是由位圖去適應控件的大小。 HBITMAP SetBitmap(HBITMAP hBitmap
4、); 這里的數(shù)是一個位圖句柄,而返回的值也是一個位圖句柄,這里返回的是這個CStatic控件先前關聯(lián)的位圖如果先前這個控件沒有關聯(lián)任何位圖的話它會返回NULL GetBitmap:用來獲得CStatic關聯(lián)的位圖句柄 HBITMAP GetBitmap()const; 這里要說明的是如果先前并沒有關聯(lián)位圖的話它就會返回NULL SetIcon:這個方法是用來設置一個圖標關聯(lián)到CStatic控件上 HICON SetIcon(HICON hIcon); 這里的參數(shù)和返回值都是一個圖標句柄,參數(shù)表示的是要關聯(lián)的圖標句柄,而返回值是一個先前已關聯(lián)的圖標句柄如果是先前沒有關聯(lián)圖標句柄的話則會
5、返回NULL GetIcon:這個函數(shù)用來獲取CStatic控件相關聯(lián)的圖標句柄 HICON GetIcon()const; 這里如果這個CStatic控件沒有關聯(lián)什么圖的話它就會返回NULL SetCursor:這個函數(shù)來關聯(lián)與這個CStatic控件相關聯(lián)的光標句柄 HCURSOR SetCursor(HCURSOR hCursor); 這里的參數(shù)是一個光標的句柄這個句柄是指要關聯(lián)的光標,如果這個控件之前關聯(lián)過光標的話它會返回先前關聯(lián)的光標的句柄,如果先前沒有關聯(lián)什么光標的話這里會返回NULL HCURSOR GetCursor()const; 這個函數(shù)會返回一個光標的句柄,如果這
6、個CStatic控件沒有關聯(lián)什么光標的話它就會返回NULL HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile); 這里是把CStatic控件關聯(lián)一個增強型的圖元文件,返回值會返回之前已關聯(lián)的增強型的圖元文件的句柄,如果先前沒有關聯(lián)的話它會返回一個NULL 同樣的還有一個GetEnhMetaFile函數(shù)它是用來獲得已關聯(lián)的圖元文件的句柄的。HENHMETAFILE GetEnhMetaFile()const; 現(xiàn)在我們舉個例子如果我們想去在一個對話框中去動態(tài)加入一個CStatic控件的話們要去創(chuàng)建一個對話框的應用程序,再就是我們要用一個方
7、法去激活它可以在我們點了一個什么按鈕的時候就把它顯示出來,我們得在窗口類中加入一個CStatic對象,比如我們加入CStatic m_Dynamic; 然后的話我們在點按鈕的事件處理中我們加上如下的代碼段: if(!IsWindow(m_Dynamic.m_hWnd))//做這樣子一個判斷是為了可以使用我們在創(chuàng)建了這個CStatic之后不會再去創(chuàng)建 m_Dynamic.Create("Welcom!",WS_CHILD,CRect(110,50,80,100),this,1525)//當然這里最后一個參數(shù)有默認的值可以不寫 m_Dynamic.ShowWindow(SW_SHOW);
8、 再就是我們?nèi)绻ピO置位圖的話我們要有一步很重要的要做就是ModifyStyle函數(shù)的調(diào)用 比如我們用一個CStatic按鈕,它的ID是IDC_STATIC2 CStatic*static2=(CStatic*)GetDlgItem(IDC_STATIC2); static2-ModifyStyle(0,SS_BITMAP); static2-SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)));//這里假定位圖的資源是IDB_BITMAP2 同理這里如果我們設置圖標的話我們也是要去做Mo
9、difyStyle函數(shù)的,只是設置的標識是SS_ICON 而如果我們要讓CStatic控件響應鼠標消息的話我們就要用ModifyStyle函數(shù)加上SS_NOTIFY 然后我們要做的功做就是去寫它的響應函數(shù)是如何的。 關于MFC當中的編輯框控件這也是一個非常常用的控件: CEdit控件提供了窗口的編輯功能,窗口編輯控件是一個矩形的子窗口,用戶能夠在窗口編輯控件中錄入文本: CEdit控件的主要方法: 1,CanUndo:這個函數(shù)用來確定編輯控件是否取消操作 BOOL CanUndo()const; 這個函數(shù)的返回值是一個BOOL值,它表示如果最后一次操作被取消了返回值是TRUE,
10、否則是FALSE 2,GetLineCount:這個函數(shù)用來獲得多行文本控件的行數(shù) int GetLineCount()const; 它的返回值是一個int值,如果這個編輯框中沒有輸入文本的話就會返加1,如果有輸入文本的話就會返加文本的行數(shù) 3,GetModify:這個函數(shù)用來確定控件的內(nèi)容是否被修改了,窗口保留一個內(nèi)部標記,確定編輯框內(nèi)容是不是被更改了當控件首次被創(chuàng)建或是調(diào)用了SetModify的時候就會創(chuàng)建這個標記 BOOL GetModify()const; 4,SetModify:這個函數(shù)用來設置或是清除編輯框的修改標記 void SetModify(BOOL bModif
11、ied=TRUE); 這個函數(shù)的參數(shù)bModified表示的用來設置修改標記還是清除這個標記,如果是TRUE則是設置這么一個標記,如果為FALSE則是去清除這個標記 5,GetRect:這個函數(shù)是用來獲取編輯框的文本區(qū)域 void GetRect(LPRECT lpRect)const; lpRect用來接收返回的文本區(qū)域,這個區(qū)域隨控件的大小而改變 6,GetSel:這個函數(shù)是用來獲得當前選中的文本的開始位置和結束位置 DWORD GetSel()const; void GetSel(int&nStartChar,int&nEndChar)const; 這個函數(shù)還是一個重載函
12、數(shù),第一個是返回一個雙字節(jié)的整數(shù),其低字節(jié)是選中文本的起始位置,高字節(jié)是選中文本的結束位置 第二個函數(shù)有兩個參數(shù)分別用來記錄起始位置和結束位置 7,SetMargins:這個函數(shù)是以像素為單位來設置控件的左右邊距 void SetMargins(UINT nLeft,UINT nRight); 這里的兩個參數(shù)分別用來設置左邊距和右邊距 8,GetMargins:這個函數(shù)則是用來獲得編輯框的左右邊距 DWORD GetMargins()const; 這個函數(shù)返回一個雙字節(jié)整數(shù)值,其值的低字節(jié)是編輯框的左邊距,高字節(jié)是編輯框的右邊距 9,SetLimitText:這個函靈敏用來以字
13、節(jié)為單位來設置編輯框控件的文本長度 void SetLimitText(UINT nMax); nMax是用于確定文本的最大長度的這個方法只是用來限制用戶文本的錄入,它是不會影響已存在的文本的也不會影響調(diào)用SetWindowText來設置的文本 10,GetLimitText:這個函數(shù)則是用來獲得可以錄入的文本的長大長度 11,PosFromChar:這個函數(shù)用來返回指定字符的左上角的坐標 CPoint PosFromChar(UINT nChar)const; 這里的參數(shù)nChar是基于0基礎的字符索引 12,CharFromPos:這個函數(shù)根據(jù)坐標的位置來返回當前行號和字符索
14、引 int CharFromPos(CPoint pt)const; 這里的參數(shù)是坐標點的值 返回值中的低字節(jié)中存放的是字符索引,高字節(jié)存放的是行號 13,GetLine:這個函數(shù)用來返回指定行的文本 int GetLine(int nIndex,LPTSTR lpszBuffer)const; int GetLine(int nIndex,LPTSTR lpszBuffer,int nMaxLength)const; 這個函數(shù)也是一個重載函數(shù),lpszBuffer是一個字符緩沖區(qū),用來接收返回的數(shù)據(jù) nMaxLength這個參數(shù)是標識復制到緩沖區(qū)中的最大的字節(jié)數(shù) 返回值是一
15、個int值表示的是實際復制到緩沖區(qū)中的字節(jié)數(shù) 14,GetPasswordChar:這個函數(shù)是用來返回密碼字符,如果密碼字符是不存在的則會返回NULL TCHAR GetPasswordChar()const; 15,LineFromChar:這個函數(shù)是用來根據(jù)字符的索引來返回行號,字符索引從文本的第一個字符開始第一個字符的索引為0然后依次往下推 int LineFromChar(int nIdex=-1)const; nIndex表示的是標識字符的索引,如果是-1當前行號被返回 16,LineIndex:這個函數(shù)是用來返回某一行的字符索引 int LineIndex(int nL
16、ine=-1)const; nLine:標識的是行號,如果為-1則表示的是當前的行 17,LineLength:這個函數(shù)是用來根據(jù)字符索引返回行的文本長度 int LineLength(int nLine=-1)const; nLine:標識字符索引,如果為-1的話函數(shù)返回當前行 18,SetSel:這個函數(shù)是用來設置選中的文本 void SetSel(DWORD dwSelection,BOOL bNoScroll=FALSE); void SetSel(int nStartChar,int nEndChar,BOOL bNoScroll=FALSE); 這也是一個重載函數(shù),
17、dwSelection的低字節(jié)中標識起始位置,高字節(jié)中標識結束位置,如果起始位置是0,結束位置是非曲直則表示選取中所有的文本 nStatrChar,nEndChar分別表示的就是標識起始位置和開始位置 bNoScroll確定插入符是否要被滾動到可視區(qū)域,如果是FALSE則滾動到可視區(qū)域,否則的旅話它不會滾動到可視區(qū)域 19,SetPasswordChar:這個函數(shù)用來設置字符密碼 void SetPasswordChar(TCHAR ch); ch:標識密碼字符如果是0實際字符被顯示 20,Clear:這個方法用來刪除當前選中的文本 void Clear(); 接下來我們看一下
18、CButton按鈕控件: CButton提供了Windows按鈕控件的基本功能。按鈕控件是一個小的矩形子窗口。典型的按鈕控件有復選框、單選按鈕、下壓按鈕這些控件可以通過修改CButton風格來實現(xiàn) CButton控件的主要方法是如下的: 1,GetState:這個函數(shù)用來返回按鈕的當前狀態(tài) UINT GetState()const; 它的返回值是UINT值,是按鈕的狀態(tài): BST_CHECKED:控鈕被選中 BST_UNCHECKED:按鈕沒有被選中 BST_FOCUS:按鈕獲得焦點 BST_INDETERMINATE:按鈕處于灰色狀態(tài) BST_PUSHED:按鈕處于高亮狀
19、態(tài) 2,SetState:這個函數(shù)用來設置按鈕的狀態(tài) void SetState(BOOL bHightlight); 這里的參數(shù)bHighlight標識按鈕是否高亮顯示 3,GetCheck:這個函數(shù)用來獲得單選按鈕或復選框的選中狀態(tài) int GetCheck()const; 這里返回值是一個int值,0表示按鈕沒有被選取中,1表示按鈕被選中,2表示按鈕狀態(tài)不確定 4,SetCheck:這個函數(shù)用來設置單選按鈕或復選框的狀態(tài) void SetCheck(int nCheck); nCheck:如果是0,表示不選中按鈕,如果是1則表示選中按鈕,如果是2則表示不確定按鈕狀態(tài)
20、5,GetButtonStyle:這個函數(shù)用于返回按鈕風格 UINT GetButtonSytle()const; 這里的返回值是按鈕的風格而不是窗口風格 6,SetIcon這個函數(shù)是用來關聯(lián)一個圖標到按鈕控件上面,圖標會自動地繪制到控件上 HICON SetIcon(HICON hIcon); hIcon一個圖標的句柄 這里的返回值還是一個圖標句柄,如果之前調(diào)用了SetIcon則會返回先前關聯(lián)的圖標,如果先前沒有關聯(lián)圖標的話函數(shù)的返回值是NULL 7,GetIcon:這個函數(shù)是獲取當前控件關聯(lián)的圖標句柄,如果沒有關聯(lián)圖的話函數(shù)的返回值是NULL HICON GetIcon()co
21、nst; 8,GetBitmap:這個函數(shù)用來將一個位圖關聯(lián)到按鈕控件當中。位圖自動地被繪制在控件中,如果位圖過大的話它就會被剪裁。 HBITMAP SetBitmap(HBITMAP hBitmap); hBitmap是位圖的句柄 它的返回值也是一個位圖的句柄,如果之前調(diào)用了SetBitmap關聯(lián)了位圖句柄的話它就會返回這個已關聯(lián)的位圖句柄否則的話會返回NULL 9,GetBitmap:這個函數(shù)用來返回當前控件關聯(lián)的位圖句柄如果控件沒有關聯(lián)位圖則返回NULL HBITMAP GetBitmap()const; 10,GetCursor:這個函數(shù)是用來獲得控件當前關聯(lián)的鼠標句柄如果控
22、件沒有關聯(lián)這樣的句柄的話它就會返回0 HCURSOR GetCursor(); 11,SetCursor:這個函數(shù)是用來設置關聯(lián)控制件的鼠標指針形狀 HCURSOR SetCursor(HCURSOR hCursor); 這個函數(shù)的返回值和參數(shù)都是鼠標指針句柄,它返回的是先前已婚關聯(lián)的鼠標指針若先前沒有關聯(lián)的話就會返回0,參數(shù)則是表示當前要關聯(lián)的鼠標指針形狀 12,BN_CLICKED消息,這個消息是在用戶單擊了控鈕的時候發(fā)生的,控鈕的父窗口通過WM_COMMAND消息接收該通知消息 13,BN_DBLCLK消息,這個就是在雙擊的時候發(fā)生的按鈕的父子控口通過WM_COMMAND消息來
23、接收這個通知消息,這里有一點要注意的就是只有BS_OWNERDRAW風格的按鈕才會觸發(fā)BN_DBCLCLK 注意:我們?nèi)绻由习翠@的光標的時候我們做的工作是在單擊的時候觸發(fā)但是它卻是當焦點在這個按鈕上的時候按回車鍵才會顯示這樣子的光標 下面我們來看一下列表框控件:CListBox CListBox封裝了Windows列表框的基本功能 CListBox控件的主要方法如下: 1,GetCount:這個函數(shù)用于獲得列表框中的項目數(shù) int GetCount()const; 2,GetSel:這個函數(shù)是用來獲得項目的選中狀態(tài) int GetSel(int nIndex)const; n
24、Index這個參數(shù)表示的是項目的索引 它的返回值表示狀態(tài)如果這個返回值大于0則表示項目是被選中的,如果等于0的話表示項目是沒有選中的 3,GetText:這個函數(shù)從列表框中獲得一個字符串 int GetText(int nIndex,LPTSTR lpszBuffer)const; void GetText(int nIndex,CString&rString)const; 這里的參數(shù)nIndex表示的是項目的索引 lpszBuffer表示的是一個字符的緩沖區(qū),注意這個緩沖區(qū)必須有足夠的空間來接收字符串 rString:用于接收返回的字符串 有一個重載函數(shù)有int類型的返回值,
25、它表示的是實際返回的字符串的長度 4,GetTextLen:這個函數(shù)是用來返回列表框中某一項的長度 int GetTextLen(int nIndex)const; 參數(shù)nIndex表示的是字符串的索引 5,SetColumnWidth:它表示的設置列的寬度 void SetColumnWidth(int cxWidth); 參數(shù)cxWidth表示的是以像素為單位的標識列寬度 6,GetCurSel:這個函數(shù)是用來獲得當前選項的索引,索引是基于0開始的 int GetCurSel()const; 7,SetCurSel:表示的是用于設置當前選中的選項 int SetCurS
26、el(int nSelect); 參數(shù)nSelect表示的是標識選中的項,如果這個參數(shù)是-1的話它會清除所有被選中的項 8,GetSelCount:這個方法是用來獲得列表框中當前選中的選項數(shù) int GetSelCount()const; 9,AddString:這個函數(shù)是用來向列表框中加入字符串 int AddString(LPCTSTR lpszString); 參數(shù)lpszString表示的是字符串指針 如果這個列表框不包含CBS_SORT風格的話字符串會直接插入到列表框的尾部,否則的話列表框會進行排序 10,DeleteString:這個函數(shù)用來從列表框中刪除一個字符串
27、 int DeleteString(UINT nIndex); 參數(shù)nIdex表示的是列表框中項目的索引 這個函數(shù)的返回值是列表框中字符串的數(shù)量 11,InsertString:這個表示用于在列表框指定的位置插入一個字符串 int InsertString(int nIndex,LPCTSTR lpszString); nIndex表示的是插入字符串的位置,如果這里指定-1的話字符串會插入到列表框的尾部 lpszString標識的是一個字符串的指針 返回的值是一個int類型的整數(shù)它表示的是字符串的位置 12,ResetContent:這個函數(shù)表示的是刪除列表框中的所有字符串
28、 void ResetContent(); Dir:這個函數(shù)是用來添加盤符或文件到列表框當中 int Dir(UINT attr,LPCTSTR lpszWildCard); attr參數(shù)是用來標識列舉屬性可以是如下的組合: DDL_READWRITE:文件可以被讀或是寫 DDL_READONLY:文件是只讀的 DDL_HIDDED:文件被隱沒有出現(xiàn)在文件目錄中 DDL_SYSTEM:系統(tǒng)文件 DDL_DIRECTORY:有這個屬性的話那么參數(shù)lpszWildCard標識一個目錄 DDL_ARCHIVE:這個表明了文件被存檔 DDL_DRIVERS:表明包含所有的驅(qū)動器
29、DDL_EXCLUSIVE:這是一個排它標識,只有所標記的文件類型被列舉 lpszWildCard參數(shù)是一個文件標識符指針,字符串中可以包含通配符,這個函數(shù)的返回值是被添加到列表中的最后一個文件的索引 14,F(xiàn)indString:這個函數(shù)表明在列表框中查找包含指定前綴的第一個字符串 int FindString(int nStartAfter,LPCTSTR lpszString)const; nStatrAfter參數(shù)表示的是從哪一項開始搜索字符串,當函數(shù)查找到列表框的底部時,還將從第一項開始查找直到nStartAfter處,如果這個參數(shù)為-1將從第一項開始查找整個列表框 lpsz
30、String標識的是查找的字符串,返回值是字符串的索引 15,F(xiàn)indStringExact:這個函數(shù)是用來在列表框中精確地查找指定的字符串 int FindStringExact(int nStartAfter,LPCTSTR lpszFind)const; nStatrAfter參數(shù)表示的是從哪一項開始搜索字符串,當函數(shù)查找到列表框的底部時,還將從第一項開始查找直到nStartAfter處,如果這個參數(shù)為-1將從第一項開始查找整個列表框 lpszFind標識了要查找的字符串 返回值是找到的字符串索引 16,SelectString:這個函數(shù)是用來在列表框中查找指定的字符串,如果
31、找到字符串將選取中該字符串,并把它復制到編輯框當中 int SelectString(int nStatrtAfter,LPCTSTR lpszString); nStartAfter:這個參數(shù)標識了從哪一項開始搜索字符串,當函數(shù)查找指定的字符串,如果找到列表框的底部的話還會從第一項開始查找直到nStartAfter處,如果nStartAfter為-1的話它將從第一項開始查找整個列表框。 lpszString:標識查的字符串 返回值是找到的字符串的索引 列表框還有一些消息: LBN_SELCHANGE消息,這個是當列表中的選項被改變的時候就會觸發(fā)這個消息 LBN_DBLCLK消息,當用戶雙擊列表框中的字符串的時候觸以這個消息 LBN_ERRSPACE消息,當列表框不能分配足夠空間時觸發(fā)這個消息 LBN_KILLFOCUS消息,當列表框失去焦點的時候觸以這個消息 LBN_SELCANCEL消息,當用戶取消列表框中選中的選項的時候觸發(fā)這個消息 LBN_SETFOCUS消息,當列表框獲得這個焦點時觸以這個消息。 特別聲明:1:資料來源于互聯(lián)網(wǎng),版權歸屬原作者2:資料內(nèi)容屬于網(wǎng)絡意見,與本賬號立場無關3:如有侵權,請告知,立即刪除。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當頭廉字入心爭當公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔當時代大任的中國青年PPT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學期末考試經(jīng)驗總結(認真復習輕松應考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展營造風清氣正的環(huán)境
- 冬季消防安全知識培訓冬季用電防火安全
- 2025加強政治引領(政治引領是現(xiàn)代政黨的重要功能)
- 主播直播培訓直播技巧與方法
- 2025六廉六進持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領鄉(xiāng)村振興工作總結
- XX中小學期末考試經(jīng)驗總結(認真復習輕松應考)
- 幼兒園期末家長會長長的路慢慢地走