windows控件理論學習
mmp快考試了還在浪
一、對話框編輯器創建控件
1、使用new在堆上創建,系統結束時我們需要使用delete去銷毀控件
2、對話框編輯器控件,程序結束,自動銷毀
二、控件類的基類
CWnd類和消息映射隱藏在Wndproc()函數,含有windows消息時,會自動到
onmessage函數中,然後通過Onmessage函數的重寫來實現對特殊消息的處理
使用CWnd類時,可以通過增加成員函數來實現對相關數據的存儲,另外還可以實現啊成員函數和消息的映射
創建CWnd子控件分為兩步:
調用構造函數創建CWnd對象
create函數可以用來創建對話框,最後附加到CWnd中
三、控件的消息和處理
發生消息處理事件的同時,父對話框會產生相應的改變,因此我們在做相應的添加
相應的消息的時候,都要對父類對話框做相應的處理,通常格式如下:
ON_Notification(id,memberfunction) //消息映射
按鈕控件
按鈕控件有兩個狀態:按下和彈起
按鈕控件類Cbutton(Cbitmapbutton處理圖像按鈕)
按鈕事件的屬性和消息
ON_BN_CLICKED,ON_BN_DOUBLECLICKED,用戶雙擊按鈕控件,發送給父窗體相應
事件
GetState(),SetState(),GetCheck(),SetCheck(),獲取相應的窗口
四、靜態控件和編輯控件
1、靜態控件類static
通常不接受輸入和輸出,使用SS_NOTIFY除外,顯示鼠標,字符串,位圖等
2、Cedit編輯類控件
使用GetLine()、SetSel()、GetSel()、ReplaceSel()成員函數來獲取和設置控件部分的文本
常用函數
ON_EN_CHANGE、ON_EN_ERRSPACE、ON_EN_HSCROLL、ON_EN_KILLFOCUS、ON_EN_MAXTEXT、ON_EN_SETFOCUS、ON_EN_UPDATE、ON_EN_VSCROLL消息
單選框和復選框控件
3、單選框控件
(1)、將各個單選框按鈕的TAB鍵順序按照分組設置,同一組的單選框控件的tab鍵組合在一起。
(2)、選擇每個分組的第一個單選按鈕的group屬性和Tab stop以及Auto屬性。
(3)、其余的單選框選擇Tab stop和Auto屬性即可
4、單選框控件的消息和參考上面控件的消息
復選框控件的創建,在創建時和一般相同但是我們需要選擇復選框,事件參考上述按鈕事件的使用
五、列表框控件和組合框控件
1、列表框顯示數據的列表
CListBox
使用向導添加控件對象變量後,向導會在對話框類的DoDataExchange()函數中使用DDX_Control()函數與成員變量連接起來。
2、常用消息
ON_LBN_DBLCLK、ON_LBN_ERRSPACE、ON_LBN_SELCANCEL、ON_LBN_KILLFOCUS、ON_LBN_CHANGE、ON_LBN_SETFOCUS、ON_LBN_CHARTOITEM、ON_LBN_VKEYTOLIEM消息
組合控件不僅可以處理CWnd的消息,另外還可以處理這些消息
ON_CBN_DBLCLK、ON_CBN_CLOSEUP、ON_CBN_DROPDOWN、ON_CBN_KILLFOCUS、ON_CBN_EDITCHANGE、ON_CBN_EDITUPDATE、ON_CBN_SELCHANGE、ON_CBN_SELENDCANCEL、ON_CBN_SELENDOK消息
六、微調控件、滑塊控件和進度條控件
1、微調控件提供箭頭,單擊箭頭可以進行調整,要使得編輯控件和微調控件一致需要執行下面的操作:
(1)、將編輯控件的Tab順序值和微調控件的值相鄰,並且編輯框控件的Tab鍵順序值大
(2)、取消微調控件的Tab屬性
(3)、設置微調控件的屬性
2、劃款控件位置等於範圍加一,進度條控件方法參照其他控件,但是選擇是我們需要選擇進度條控件;主要方法如下:
SetRange進度條控件的範圍值
SetStep進度條控件的增量間隔值
SetPos進度條控件的當前位置值
SetPos設置當前位置值
GetPos獲取進度條的當前位置值
七、列表視圖控件和樹形視圖控件
1、列表視圖支持Icon、SmallIcon、List、Report等視圖
列表視圖控件類CLsitCtrl
方法:CListCtrl::GetItem方法、CListCtrl::InsertItem方法、CListCtrl::FindItem方法。
列表視圖控件的通知消息
要對項進行此列內容的排序,應該在處理函數中進行處理、在視圖類或對話框類處理WM_NOTIFY消息對應的處理含糊ONChildNotify,加入switch語句來處理不同消息。
2、樹形視圖控件的創建,參考上述控件的創建
3、CTreeCtrl類實現樹形視圖控件的功能,WM_NOTIFY消息。
八、ActiveX控件,作用提供持久、連接點和主機標準接口的COM組件,可以在控件包含器中處理控件的協議,交換消息和處理事件。
使用
在對話框資源編輯器,單擊控件|屬性菜單項
選擇ALL選項卡,或者選擇指定選項卡,在屬性中輸入初始值
屬性,方法,類型庫
包裝類的使用
控件包裝在COleDispatchDriver類
使用GetDlgItem函數需要包裝類,返回值必須轉換為控件類型。
CDBLIsT* pDBList=0
pDBList=static_cast<CDBList*>(GetDlgItem(IDC_DBLISt));
ActiveX幫助信息1控件本身信息2OLE/COM幫助信息
使用:1控件和組件庫插入控件2 對話框編輯框插入控件
MFC需要在InitInstance()添加以下代碼AfxEnableControlContainer()
windows控件理論學習