例如對windows發消息讓文本選中。 SendMessage(Text1.hwnd,EM_GETSEL,0,-1 );
EC_LEFTMARGIN(&H1) EC_USEFONTINF //設置左邊距時使用
EC_RIGHTMARGIN EC_USEFONTINF //設置右邊距時使用
EC_USEFONTINF,O//邊距 設置編輯控件的左、右邊距,當wParam含EC_LEFTMARGIN時在lParam的低16位指定左邊距點數,當wParam含EC_RIGHTMARGIN時在lParam的高16位指定右邊距點數。當指定wParam為EC_USEFONTINFO時,則用當前字體的字符"A"的寬度指定右邊距和字符"C"的寬度指定左邊距lParam被忽略。
EM_CHARFROMPOS(&HD7=215),0, //取得編輯控件中指定位置的字符相對於文本頭部的偏移量。使用本操作應先在第4個參數的高16位指定行號,低16位指定列號(或一個POINTAPI結構),行列是按編輯控件的客戶區左上角為原點(0,0)計算的。如果指定的位置超出控件客戶區則返回-1
EM_CANUNDO(&HC6=198),0,0 //決定前一次編輯操作是否能夠撤消:檢測控件撤消緩沖區是否為空,通常控件把最后一次在控件的編輯操作保存在一個撤消緩沖區,如果緩沖區非空則返回TRUE表示上次操作可以撤消,否則返回FALSE,應用程序可以利用該返回值來禁止或允許菜單或工具條的"撤消"項。
EM_EMPTYUNDOBUFFER(&HCD=205 ),0,0 //清除控件的撤消緩沖區,使其不能撤消前一次編輯操作
EM_FMTLINES(&HC8=200) //決定是否在取回的文本宇串中包含軟回車字符
EM_GETFIRSTVISIBLEINE(&HCE=206),0,0 //獲得文本控件中處於可見位置的最頂部的文本所在的行號
EM_GETLINE(&HC4=196 )//行號,ByVal 變量 獲取編輯控件某一行的內容,變量須預先賦空格
EM_GETLINECOUNT(&HBA=186,0,0// 獲取編輯控件的總行數
EM_GETMODIFY(&HB8=184),0,0 //判斷編輯控件的內容是否已發生變化,返回TRUE則控件文本已被修改,返回FALSE則未變。
EM_GETPASSWORDCHAR( ),0,0 //獲取編輯控件的密碼字符,返回NULL表示沒有字符
EM_GETRECT(&HB2=178),0,結構 //獲取編輯控件的格式化矩形
EM_GETTHUMB(&HBE=190),0,0 //取得多行文本編輯控件的滾動框的當前位置(注意:是象素值)
EM_GETSEL(&HB0=176),0,//變量 獲取光標位置(以字節數表示),或:(緩沖區起點,緩沖區終點)取得編輯控件中選定內容的范圍,返回值中低16位為起點,高16位為終點
EM_GETHANDLE(&HBD=189),0,0// 取得文本緩沖區
EM_GETWORDBREAKPROC(&HD1=209),0,0 //取得整字換行回調函數EditWordBreakProc指針
EM_GETLIMITTEXT(WM_USER+37=1061),0,0 //獲取一個編輯控件中文本的最大長度
EM_GETMARGINS( ),0,0 //獲取編輯控件的左、右邊距,返回值低16位為左邊距,高16位為右邊距(不得用於NT3.51)
EM_LIMITTEXT(&HC5=197),//最大值,0 設置編輯控件中的文本長度
EM_SCROLLCARET(&HB7=183),0,0 //把可見范圍移至光標處
EM_LINEFROMCHAR(&HC9=201),//偏移值,0 獲取指定位置(或:-1,0 表示光標位置)所在的行號
EM_LINEINDEX(&HBB=187),//行號,0 獲取指定行(或:-1,0 表示光標所在行)首字符在文本中的位置(以字節數表示)
EM_LINELENGTH(&hC1=193)//偏移值,0 獲取指定位置所在行(或:-1,0 表示光標所在行)的文本長度(以字節數表示)
EM_POSFROMCHARPOINT,結構地址,偏移值 取得指定字符位置的行列號,偏移值是字符相對於文本頭部的偏移。
EM_LINESCROLL(&HB6=182)//列數,行數 指定行數的文本水平滾動,每次滾動N列
EM_EXGETSEL (&H434 = 1076)
EM_EXSETSEL(&H437=1079),0//結構 RichEdit控件設置文本選定范圍,參閱 EM_SETSEL 消息,結構是指 CHARRANGE 結構
EM_PASTESPECIAL(&H440=1088),2(1),1// RichEdit控件粘貼剪貼板中的位圖(或文本)
EM_FINDTEXT(&H738=1080) //RichEdit控件正文搜索操作
EM_FINDTEXTEX(&H44F=1103) //同上
EM_SETTEXTEX(&H461=1121) //RichEdit控件正文替換/插入操作
EM_SETTARGETDEVICE, GetDC(RichText.hWnd), RichText.Width // 15)設置 RichTextBox 自動換行,后續代碼是:RichText.RightMargin = iif(RichText.RightMargin = 0,1,0)
EM_SETTARGETDEVICE, 0, 1 //設置 RichTextBox 不自動換行
EM_POSFROMCHAR(&HD6或&H426)// 判斷指定字符在編輯控件的位置(用於NT3.51)
EM_SCROLL(&HB5=181),*,0 //文本垂直滾動。第三個參數*控制滾動方向:SB_LINEDOWN(1)向下滾動一行,SB_LINEUP(0)向上滾動一行,SB_PAGEDOWN(3)向下滾動一頁,SB_PAGEUP(2)向上滾動一頁。
EM_REPLACESEL(&HC2=194),1(0)//,字符串 用指定字符串替換編輯控件中的當前選定內容,如果第三個參數wParam為1,則本次操作允許撤消,0禁止撤消。字符串可用傳值方式,也可用傳址方式(例:SendMessage Text1.hwnd, EM_REPLACESEL, 0, Text2.Text '這是傳值方式)
EM_SETSEL(&HB1=177)//,起點,終點 設置編輯控件中文本選定內容范圍(或設置光標位置),該范圍被反相顯示,用於為復制、替換、粘貼、剪切、刪除等編輯功能指定范圍,光標將被移至指定的終點后面。還可使用指定相同起點和終點來移動光標而不是選定范圍。當指定的起點等於0和終點等於-1時,文本全部被選中,此法常用在清空編輯控件。當指定的起點等於-2和終點等於-1時,全文均不選,光標移至文本未端,此法常用在文本未端追加內容。注意:當控件沒有輸入焦點時,本操作將會失敗,一般在執行本操作前都應調用SetFocus先取得輸入焦點。
EM_UNDO(&HC7=199),0,0 //撤消前一次編輯操作,當重復發送本消息,控件將在撤消和恢復中來回切換
EM_SETCHARFORMAT(&H444)// 改變選定文本的顏色
EM_SETHANDLE(&HBC=188),//緩沖區指針,0 為編輯控件指定新的文本緩沖區。此操作僅適用對話框創建帶DS_LOCALEDIT風格的控件。
EM_SETLIMITTEXT,長度(字節),0 //設置編輯控件中的文本最大長度(不得用於NT3.51)
EM_SETMARGINS(&HD3=211) //設置編輯控件的左、右邊距(不得用於NT3.51)
EM_SETMODIFY(&HB9=185),1(0),0 //設置或清除一個編輯控件的修改標志
EM_SETPASSWORDCHAR(&HCC=204),//字符,0 指定控件用來顯示密碼的字符,缺省為"*"。當第三個參數wParam為0時,本操作將清除控件的ES_PASSWORD風格,並按實際字符顯示。
EM_SETREADONLY(&HCF=207),1(0),0 //決定是否將編輯控件設為只讀,同時決定控件的ES_READONLY風格
EM_SETRECT(&HB3=179),0(或RECT),//結構地址 為一個編輯控件設置格式化矩形
EM_SETRECTNP(&HB4=180),0(或RECT)//,結構地址 為一個編輯控件設置格式化矩形,只是控件此時不會重畫
EN_CHANGE(&H300=768)// 編輯控件的內容發生改變。與EN_UPDATE不同,該消息是在編輯框顯示的正文被刷新后才發出的。
EN_ERRSPACE(&H500=1280) //任何時候只要由於內存不足以完成一項編輯操作
EN_HSCROLL(&H601=1537)// 用戶單擊了編輯控件的水平滾動條。注意:這條消息是在控件更新顯示之前發送出去的。
EN_VSCROLL(&H602=1538) //用戶單擊了編輯控件的垂直滾動條。注意:這條消息是在控件更新顯示之前發送出去的。
EN_KILLFOCUS(&H200=512) //編輯控件失去了輸入焦點
EN_SETFOCUS(&H100=256) //編輯控件獲得了輸入焦點
EN_UPDATE(&H400=1024) //控件准備顯示改變了的正文時發送該消息。它與EN_CHANGE通知消息相似,只是它發生於更新文本顯示出來之前。
EN_MAXTEXT(&H501=1281)// 用戶輸人的文字數超出由EM_LIMITTEXT消息規定的界限,或超出由VB Maxlength屬性規定的界限,就會發送這條消息 。此外,倘若不允許自動進行水平滾動,同時插入點要超出控件的寬度;或者不允許自動垂直滾動,同時插入點要超出控件的高度,那么也會觸發這條消息。在沒有ES_AUTOHSCROLL或ES_AUTOVSCROLL的編輯框中,當正文超出了編輯框的邊框時也會發出該消息。
編輯風格消息:
ES_MULTILINE //指定編輯控件能否進行多行文本編輯,若多行編輯器不指定ES_AUTOHSCROLL風格,則會自動換行,用戶每按一次Enter,在當前光標處輸入一個回車換行符(0Dh,0Ah),文本增加一行。若不指定ES_AUTOVSCROLL,則多行編輯器會在窗口中正文裝滿時發出警告聲響。
ES_LEFT //文本顯示居左?
ES_CENTER// 文本顯示居中?
ES_RIGHT //文本顯示居右?
ES_LOWERCASE //把用戶輸入的字母統統轉換成小寫字母?
ES_UPPERCASE// 把用戶輸入的字母統統轉換成大寫字母?
ES_OEMCONVERT // 把輸入的文本從ANSI碼轉換成OEM碼,然后又轉換成ANSI碼,目的是保證函數AnsiToOem的正確調用。這在編輯框中包含文件名時是很有用的。
ES_AUTOHSCROLL(自動增加水平滾動條?) 當用戶在行尾鍵入一個字符時,正文將自動向右滾動10個字符,當用戶按回車鍵時,正文總是滾向左邊。
ES_AUTOVSCROLL // 當用戶在最后一個可見行按回車鍵時,正文向上滾動一頁。
ES_NUMBER //只接收數碼輸入,其它字符輸入一律無效。
ES_NOHIDESEL(&H100=256) //當編輯框失去輸入焦點時,選中的文本將隱藏,正文中的選擇保持不變。缺省時正文中的選擇將失效,當獲得輸入焦點后才又顯示出來。
ES_READONLY 將編輯框設置成只讀的?
ES_PASSWORD(&H20=32) //使所有鍵入的字符都用"*"來顯示。
ES_WANTRETURN //使多行編輯器接收回車鍵輸入並換行。如果不指定該風格,按回車鍵會選擇缺省的命令按鈕,這往往會導致對話框的關閉。
列表框操作:
LB_FINDSTRING(&H18F=399),-1,ByVal //字串 查找列表項的字符串,返回值=字符串所在的列表項的索引。-1表示從第0行開始查找,如果改為一個有效的列表項索引值,將從該行開始查找。
LB_ITEMFROMPOINT(&H1A9=425) //獲取光標所在的列表項的索引
LB_SETHORIZONTALEXTENT(&H194=404),//長度,0 設置列表框的橫向滾動條以及滾動長度,長度為象素值
組合框操作:
CB_SHOWDROPDOWN(&H14F),1(0),0// 打開(關閉)組合框的列表
TVM_SETBKCOLOR(&H1100+29=4381)// 設置擴展樹型列表控件的背景色(TVM開頭的常數)
常用窗口消息:
WM_GETFONT(&H31=49)// 得到當前控件繪制文本的字體(的句柄)
WM_GETTEXT(&HD=13),//變量長度,變量 取得窗體的標題,變量須預先賦空字串(chr(0)),變量長度=Len(變量)
WM_SETTEXT(&HC=12),0,ByVal //"字串" 設置窗體的標題
WM_NCLBUTTONDOWN(&HA1=161),2,0 //在非客戶區,即邊框及標題欄上(假如定義的是一個組件,則非客戶區包括Form等)按下鼠標左鍵;
WM_LBUTTONDOWN(&H201=513),2,0 //在客戶區,也就是除邊框及標題欄以外按下鼠標左鍵
WM_VSCROLL(&H115=277),&H10000*p+SB_THUMBPOSITION(&H4),0 //同步滾動文本,p是位置改變量
WM_PAINT
WM_USER (&H400 = 1024)
WM_CUT(&H300=768),0,0// 剪切
WM_COPY(&H301=769)),0,0// 復制
WM_PASTE(&H302=770)),0,0/// 粘貼
WM_CLEAR(&H303=771)),0,0 //刪除
WM_UNDO(&H304=772)),0,0 /撤消
按紐消息:
BM_SETSTYLE(&HF4)// 設置按紐樣式
BS_RADIOBUTTON(&H4) //收音機旋紐式的按紐,是 BM_SETSTYLE 使用的參數
參考:http://www.cnblogs.com/key-ok/p/3429509.html