程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Combo Box

Combo Box

編輯:關於C語言

 

組合窗口是由一個輸入框和一個列表框組成。創建一個組合窗口可以使用成員函數:
BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
其中dwStyle將指明該窗口的風格,除了子窗口常用的風格WS_CHILD,WS_VISIBLE外,你可以針對列表控件指明專門的風格。

  • CBS_DROPDOWN 下拉式組合框
  • CBS_DROPDOWNLIST 下拉式組合框,但是輸入框內不能進行輸入
  • CBS_SIMPLE 輸入框和列表框同時被顯示
  • LBS_SORT 所有的行按照字母順序進行排序

由於組合框內包含了列表框,所以列表框的功能都能夠使用,如可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )刪除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem )將行插入到指定位置。
void ResetContent( )可以刪除列表框中所有行。
通過調用int GetCount( )得到當前列表框中行的數量。

如果需要得到/設置當前被選中的行的位置,可以調用int GetCurSel( )/int SetCurSel(int iIndex)。通過調用int GetLBText( int nIndex, LPTSTR lpszText )得到列表框內指定行的字符串。

此外通過調用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在當前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開始進行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem )可以選中包含指定字符串的行。

此外輸入框的功能都能夠使用,如可以利用:
DWORD GetEditSel( ) /BOOL SetEditSel( int nStartChar, int nEndChar )得到或設置輸入框中被選中的字符位置。
BOOL LimitText( int nMaxChars )設置輸入框中可輸入的最大字符數。
輸入框的剪貼板功能Copy,Clear,Cut,Paste動可以使用。

最後介紹一下列表框幾種常用的消息映射宏:

  • ON_CBN_DBLCLK 鼠標雙擊
  • ON_CBN_DROPDOWN 列表框被彈出
  • ON_CBN_KILLFOCUS / ON_CBN_SETFOCUS 在輸入框失去/得到輸入焦點時產生
  • ON_CBN_SELCHANGE 列表框中選擇的行發生改變
  • ON_CBN_EDITUPDATE 輸入框中內容被更新

使用以上幾種消息映射的方法為定義原型如:afx_msg void memberFxn( );的函數,並且定義形式如ON_Notification( id, memberFxn )的消息映射。如果在對話框中使用組合框,Class Wizard會自動列出相關的消息,並能自動產生消息映射代碼。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved