Win32字控制項 組合框

2021-06-18 13:47:32 字數 4828 閱讀 8677

[樣式]

#define cbs_****** //輸入框和列表框同時被顯示

#define cbs_dropdown  下拉式組合框,但是輸入框內可以進行輸入

#define cbs_dropdownlist 下拉式組合框,但是輸入框內不能進行輸入

#define cbs_ownerdrawfixed  列表項是固定高度,在自繪中

#define cbs_ownerdrawvariable 列表項是可變高度,在自繪中

#define cbs_autohscroll 當樣式為cbs_******或cbs_dropdown,且輸入文字超過可顯示範圍時,自動向右滾動文字。

#define cbs_oemconvert 使編輯框元件中的正文可以在ansi 字符集和oem字符集之間相互轉換。這在編輯框中包含檔名時是很有用的

#define cbs_sort 自動排序輸入的字串到列表框中

#define cbs_hasstrings 指定乙個含有字串的自繪式組合框

#define cbs_nointegralheight  組合框的尺寸由應用程式而不是windows 指定,通常,由windows指定尺寸會使列表項的某些部分隱藏起來

#define cbs_disablenoscroll 使列表框在不需要滾動時顯示乙個禁止的垂直滾動條

#define cbs_uppercase   將編輯框和列表框中的所有文字都自動轉換為大寫字元

#define cbs_lowercase  將編輯框和列表框中的所有文字都自動轉換為小寫字元

[通知碼]

cbn_closeup:組合框的列表框元件被關閉,簡易組合框不會傳送該通知訊息

cbn_dblclk:使用者在某列表項上雙擊滑鼠,只有簡易組合框才會傳送該通知訊息

cbn_dropdown:組合框的列表框元件下拉,簡易式組合框不會傳送該通知訊息

cbn_editupdate:在編輯框準備顯示改變了的正文時傳送該訊息,下拉列表式組合框不會傳送該訊息

cbn_editchange:編輯框的內容被使用者改變了,與cbn_editupdate不同,該訊息是在編輯框顯示的正文被重新整理後才發出的,下拉列表式組合框不會傳送該訊息

cbn_errspace:組合框無法申請足夠的記憶體來容納列表項

cbn_selendcancel:表明使用者的選擇應該取消,當使用者在列表框中選擇了一項,然後又在組合框控制項外單擊滑鼠時就會導致該訊息的傳送

cbn_selendok:使用者選擇了一項,然後按了回車鍵或單擊了下滾箭頭,該訊息表明使用者確認了自己所作的選擇

cbn_killfocus:組合框失去了輸入焦點

cbn_selchange:使用者通過單擊或移動箭頭鍵改變了列表的選擇

cbn_setfocus:組合框獲得了輸入焦點 

[訊息]

cb_geteditsel 當樣式為cbs_smiple或cbs_dropdown時獲取輸入框中被選文字的開始-結束位置。

int a=sendmessage(combobox1,cb_geteditsel,null,null); //loword(a)起始,hiword(a)結束

cb_limittext 當樣式為cbs_smiple或cbs_dropdown時限制輸入框文字的長度。

sendmessage(combobox1,cb_geteditsel,16,null);

cb_seteditsel 當樣式為cbs_smiple或cbs_dropdown時設定一段選中字元。sendmessage(combobox1,cb_geteditsel,0,5);

cb_addstring 新增字串專案

cb_deletestring 刪除字串專案

cb_dir 應用程式傳送lb_dir訊息向列表框新增(驅動器或資料夾或檔案)列表,wparam應設定為檔案屬性,lparam設定為過濾器

檔案屬性:

wparam引數的值。指定檔案的屬性被新增到列表框中。這個引數可以是下列值的組合:值描述

ddl_archive包括歸檔檔案。

ddl_directory包括子目錄。子目錄名被括在方括號()。

ddl_drives包括驅動器。驅動形式列出[

-x],其中x是驅動器碟符。

ddl_exclusive只包括具有指定屬性的檔案。預設情況下,讀寫檔案列出,即使沒有指定ddl_readwrite。

ddl_hidden包括隱藏檔案。

ddl_readonly包括唯讀檔案。

ddl_readwrite包括讀寫檔案沒有附加屬性。

ddl_system包括系統檔案。 例:

//列出c盤所有子目錄和檔案(包括隱藏檔案和系統檔案),返回值為最末項的索引號

int n=sendmessage(listbox1,cb_dir,ddl_archive|ddl_directory|ddl_hidden|ddl_system,text("c:\\*.*"));

//列出硬碟所有分割槽,返回值為最末項的索引號

int n=sendmessage(listbox1,cb_dir,ddl_archive|ddl_drives,text(""));

cb_getcount 返回列表框所有專案數。sendmessage( listhwnd,cb_getcount,0,0 );

cb_getcursel返回從0開始的選中項索引值 ,沒有選中項返回-1

cb_getlbtext 將第n項中的文字放入快取區並返回該項上的字串長度。int ilength=sendmessage(combobox1,cb_getlbtext,n,sztemp);

cb_getlbtextlen 得到第n項的文字長度int n=sendmessage(combobox1,cb_getlbtextlen,n,null);

cb_insertstring 插入字串項,sendmessage( combobox1,cb_insertstring,1,text("e") );//在索引位置1處插入

cb_resetcontent刪除所有項,sendmessage( combobox1,cb_resetcontent,0,0 );

cb_findstring 從起始位置n開始查詢匹配項,並返回匹配成功的索引號。

int ilength=sendmessage(combobox1,cb_findstring,n,text("關鍵字") );

cb_selectstring 應用程式傳送lb_selectstring的資訊搜尋單選列表框中指定的字串中的字元開頭的專案。如果找到匹配的專案,該專案被選中。wparam開始搜尋的項索引號,lparam要搜尋字串。如果搜尋成功,則返回值是所選項目的索引。如果搜尋不成功,則返回值是lb_err並不會改變當前選擇。

cb_setcursel 選中單選組合框中某項,sendmessage( cbhwnd,cb_setcursel,2,0 );//選中第2項

cb_showdropdown 顯示或隱藏組合框,sendmessage(  cbhwnd,cb_showdropdown,true,0 )

cb_getitemdata 得到組合框中某項的值,而非文字

cb_setitemdata 設定組合框中某項的值,而非文字

cb_getdroppedcontrolrect 返回組合框下拉列表框的螢幕座標到乙個矩形中,sendmessage( cbhwnd,cb_getdroppedcontrolrect,0,&rect )

cb_setitemheight 當組合框為cbs_ownerdrawvariable風格時,設定列表項的高度,以畫素為單位

cb_getitemheight 當組合框為cbs_ownerdrawvariable風格時,返回列表項的高度,以畫素為單位

cb_setextendedui 設定組合框是否用擴充套件使用者介面,設定為true時用↓鍵開啟下拉列表框,為false時用f4鍵開啟下拉列表框,sendmessage(combobox1,cb_setextendedui,true,0);

cb_getdroppedstate 得到組合框是否用擴充套件使用者介面,返回true或false

cb_findstringexact 返回索引號,該項精確匹配要查詢的字串,不區分大小寫。例如查詢所有列表項中是否有"abc"

int nindex=sendmessage(combobox1,cb_findstringexact,-1,text("abc"));

cb_setlocale 此訊息設定列表框中的當前地區。高位字包含國家**,低位字包含的語言識別符號。請使用巨集makelcid地區構造識別符號和的makelangid巨集來構造語言識別。

cb_getlocale 此訊息檢索列表框中的當前地區。返回值:高位字包含國家**,低位字包含的語言識別符號。巨集primarylangid獲得的主要語言識別符號和的sublangid巨集獲得子語言識別符號。

cb_gettopindex 得到列表框中第乙個可見專案的索引。

cb_settopindex 設定列表框中第乙個可見專案的索引。

cb_gethorizontalextent 返回列表框水平滾動的寬度,以畫素為單位。

cb_sethorizontalextent 設定列表框水平滾動的寬度,以畫素為單位。

cb_getdroppedwidth 檢索允許的最小寬度,以畫素為單位。當組合框風格為cbs_dropdown或cbs_dropdownlist時。預設情況下最小寬度為0

cb_setdroppedwidth 設定允許的最小寬度,以畫素為單位。當組合框風格為cbs_dropdown或cbs_dropdownlist時。預設情況下最小寬度為0

cb_initstorage 當新增大量的專案時,此訊息先初始化專案的數量和分配記憶體,然後再新增列表框。能提高效能。

wparam:要新增的專案數量

lparam:分配的記憶體量,以位元組為單位

win32 控制項操作

int getwindowtext hwnd hwnd,lptstr lpstring,int nmaxcount boolsetwindowtext hwndhwnd,lpctstrlpstring 問題 如下,vc6 問題描述請看注釋.char sztext 256 wparam wparam ...

Win32控制項使用 Edit控制項

drecik學習經驗分享 edit控制項是乙個很強大的輸入控制項,可以處理很多樣式,通過vs的控制項屬性來設定,有單行,多行,密碼框,滾動條等。其中通知碼可以如下所示 獲得edit控制項輸入的內容可以通過之前討論過的通用函式 參考前面的博文 getwindowtext等。剪下,複製,刪除當前選擇內容...

win32之分組框

createwindowex 0,l button l 分組框 ws visible ws child bs groupbox,30,30,300,400,hwnd,hmenu 1001,hinst,null winbutton.cpp 定義應用程式的入口點。include stdafx.h inc...