1. 程式人生 > >windows控件理論學習

windows控件理論學習

gets focus 以及 not ive ember 產生 box data

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控件理論學習