windows的消息傳遞--消息盒子

例如對windows發消息讓文本選中。     SendMessage(Text1.hwnd,EM_GETSEL,0,-1 );  windows

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 使用的參數
View Code
相關文章
相關標籤/搜索