| | | Îı¾¿ò¿Ø¼þµÄÏûÏ¢¼°Ó¦Óà | | 2000-10-12¡¤
¡¤Çë×÷ÕߺÍÎÒÃÇÁªÏµ¡¤¡¤VB°®ºÃÕß
| ¡¡¡Îı¾(»òÎÄ×Ö)¿Ø¼þÊÇ¡°Îı¾¿ò¿Ø¼þ¡±µÄ¼ò³Æ,Ëüͨ³£ÓÃÓÚÊäÈëºÍ±à¼ÎÄ×Ö¡£ËüÊôÓÚ±ê×¼Windows±à¼¿Ø¼þµÄÒ»¸ö×ÓÀà,ËùÒÔËüÖ§³ÖËùÓб༿ؼþÏûÏ¢¡£Õâ¶ù½²ÊöµÄ¼¼ÊõÒ²ÊÊÓÃÓÚÓÉÆäËû³§ÉÌÉè¼ÆµÄ,ÒÔWindows±à¼¿Ø¼þÀàΪ»ù´¡µÄÆäËû¿Ø¼þ¡£
¡¡¡¡±¾ÎĽ«½éÉÜÎı¾¿Ø¼þµÄÏûÏ¢,ÕâЩÏûÏ¢ÏÔÖøÀ©Õ¹Á˿ؼþ±¾ÉíµÄÄÜÁ¦,ʹÎÒÃÇÔÚ³ÌÐòÖÐÄܹ»¸üÁé»îµÄ¿ØÖƿؼþ,²»±ØÖ»½ö½öÒÀÀµÓÚVisual BasicËùÌṩµÄÊôÐÔ»òʼþ,ÕâЩÏûÏ¢ÔÚ½øÐÐ×ÓÀà´¦ÀíÖкÜÓÐÓô¦¡£ÏÂÃæÏȽéÉܿؼþµÄÏûÏ¢,È»ºó½éÉÜËüÃǵÄһЩӦÓá£
ϱíÁгöÁËÎı¾¿Ø¼þµÄ³£ÓÃ֪ͨÏûÏ¢:
| ÏûÏ¢Ãû³Æ |
ÏûϢ˵Ã÷ |
| EN_CHANGE |
±à¼¿Ø¼þµÄÄÚÈÝÒ»µ©·¢Éú¸Ä±ä£¬¾Í·¢ËÍÕâÌõÏûÏ¢¡£ |
| EN_ERRSPACE |
ÈκÎʱºòÖ»ÒªÓÉÓÚÄÚ´æ²»×ãÒÔÍê³ÉÒ»Ïî±à¼²Ù×÷£¬¾Í·¢ËÍÕâÌõÏûÏ¢¡£ |
| EN_HSCROLL |
Ö»ÒªÓû§µ¥»÷ÁË´ÓÊôÓÚÒ»¸ö±à¼¿Ø¼þµÄˮƽ¹ö¶¯ÌõµÄÈκεط½£¬¾Í»á·¢ËÍÕâÌõÏûÏ¢¡£×¢ÒâÕâÌõÏûÏ¢ÊÇÔڿؼþ¸üÐÂÏÔʾ֮ǰ·¢ËͳöÈ¥µÄ¡£
|
| EN_KILLFOCUS |
Ò»µ©¿Ø¼þ¶ªÊ§ÁËÊäÈë½¹µã£¬Ôò·¢³öÕâÌõÏûÏ¢¡£ |
| EN_MAXTEXT |
Ö»ÒªÓû§ÊäÈ˵ÄÎÄ×ÖÊÔͼ³¬³öÓÉEM_LIMITTEXTÏûÏ¢¹æ¶¨¹º½çÏÞ£¬»òÊÔͼ³¬³öÓÉVB MaxlengthÊôÐԹ涨µÄ½çÏÞ£¬¾Í»á·¢ËÍÕâÌõÏûÏ¢¡£´ËÍ⣬ÌÈÈô²»ÔÊÐí×Ô¶¯½øÐÐˮƽ¹ö¶¯£¬Í¬Ê±²åÈëµãÒª³¬³ö¿Ø¼þµÄ¿í¶È£»»òÕß²»ÔÊÐí×Ô¶¯×Ô¶¯¹ö¶¯£¬Í¬Ê±²åÈëµãÒª³¬³ö½Ó¼þµÄ¸ß¶È£¬ÄÇôҲ»á´¥·¢ÕâÌõÏûÏ¢¡£ |
| EN_SETFOCUS |
Ò»µ©¿Ø¼þ½ÓÊÕµ½ÁËÊäÈë½¹µã£¬¾Í·¢³öÕâÌõÏûÏ¢¡£ |
| EN_UPDATE |
| EN_VSCROLL |
Ö»ÒªÓû§µ¥»÷ÁË´ÓÊôÓÚÒ»¸ö±à¼¿Ø¼þµÄ´¹Ö±¹ö¶¯ÌõµÄÈκεط½£¬¾Í»á·¢ËÍÕâÌõÏûÏ¢¡£×¢ÒâÕâÌõÏûÏ¢ÊÇÔڿؼþ¸üÐÂÏÔʾ֮ǰ·¢ËͳöÈ¥µÄ¡£
|
ϱíÁгöÁËÎı¾¿Ø¼þµÄ³£ÓÃÏûÏ¢:
| ÏûÏ¢Ãû³Æ |
ÏûϢ˵Ã÷ |
| EM_CANUNDO |
¾ö¶¨Ç°Ò»´Î±à¼²Ù×÷ÊÇ·ñÄܹ»³·Ïû |
| EM_EMPTYUNDOBUFFER |
Çå³ý¿Ø¼þµÄ³·Ïû»º³åÇø£¬Ê¹Æä²»¿ÉÄܳ·Ïûǰһ´Î±à¼²Ù×÷ |
| EM_UNDO |
³·Ïûǰһ´Î±à¼²Ù×÷ |
| EM_FMTLINES |
¾ö¶¨ÊÇ·ñÔÚÈ¡»ØµÄÎı¾Óî´®Öаüº¬Èí»Ø³µ×Ö·û |
| EM_GETLIMITTEXT |
»ñȡһ¸ö±à¼¿Ø¼þÖÐÎı¾µÄ×î´ó³¤¶È |
| EM_GETMARGINS |
»ñÈ¡±à¼¿Ø¼þµÄ×ó¡¢Óұ߾à(²»µÃÓÃÓÚNT3£®51) |
| EM_GETRECT |
»ñȡһ¸ö±à¼¿Ø¼þµÄ¸ñʽ»¯¾ØÐÎ |
| EM_LIMITTEXT |
ÏÞÖÆ±à¼Ò«¼þ¼×¹ºÎı¾³¤¶È |
| EM_SETLIMITTEXT |
ÏÞÖÆ±à¼¿Ø¼þÖеÄÎı¾³¤¶È(²»µÃÓÃÓÚNT3£®51) |
| EM_SETMARGINS |
ÉèÖñ༿ؼþµÄ×ó¡¢Óұ߾à(²»µÃÓÃÓÚNT3£®51) |
| EM_SETRECT |
Ϊһ¸ö±à¼¿Ø¼þÉèÖøñʽ»¯¾ØÐÎ |
| EM_SETRECTNP |
ÓëEM_SETRECTÀàËÆ£¬Ö»Êǿؼþ´Ëʱ²»»áÖØ» |
| EM_SETTABSTOPS |
ÉèÖñ༿ؼþÖеÄÖÆ±íÕ¾¼ä¾à |
| EM_CHARFROMPOS |
Åжϱ༿ؼþÖ¸¶¨Î»Öô¦µÄ×Ö·û(²»ÊÊÓÃÓÚNT3£®51) |
| EM_GETFIRSTVISIBLEIN |
Åжϱ༿ؼþÖÐÏÔʾµÄµÚÒ»ÐÐ |
| EM_GETLINE |
´Ó±à¼¿Ø¼þÈ¡»Ø¡ÐеÄÄÚÈÝ |
| EM_GETLINECOUNT |
ÅжÏÒ»¸ö±à¼¿Ø¼þµÄ×ÜÐÐÊý |
| EM_GETMODIFY |
Åжϱ༿ؼþµÄÄÚÈÝÊÇ·ñÒÑ·¢Éú±ä»¯ |
| EM_GETPASSWORDCHAR |
È¡µÃ±à¼¿Ø¼þµÄÃÜÂë×Ö·û |
| EM_GETSEL |
Åжϱ༿ؼþÖÐÒ»¶ÎÑ¡¶¨ÄÚÈÝµÄÆðµãÓëÖÕµã |
| EM_LINEFROMCHAR |
ÅжÏÊÇÄÄÒ»ÐÐÏÔʾÁËij¸öÌØÊâ×Ö·û |
| EM_LINEINDEX |
ÅжÏÖ¸¶¨ÐеÚÒ»¸ö×Ö·ûµÄ±àºÅ |
| EM_LINELENGTH |
ÅжÏÒ»Ðг¤¶È |
| EM_LINESCROLL |
¹ö¶¯±à¼¿Ø¼þ |
| EM_POSFROMCHAR |
ÅжÏÖ¸¶¨×Ö·ûÔڱ༿ؼþµÄλÖÃ(ÓÃÓÚNT3£®51) |
| EM_REPLACESEL |
ÓÃÖ¸¶¨Îı¾Ìæ»»±à¼¿Ø¼þÖеĵ±Ç°Ñ¡¶¨ÄÚÈÝ |
| EM_SETMODIFY |
ÓÃÓÚÉèÖûòÇå³ýÒ»¸ö±à¼¿Ø¼þµÄÐ޸ıêÖ¾ |
| EM_SETPASSWORDCHAR |
Ϊָ¶¨µÄ¿Ø¼þÉèÖÃÃÜÂë×Ö·û |
| EM_READONLY |
¾ö¶¨ÊÇ·ñ½«±à¼¿Ø¼þÉèΪֻ¶Á |
| EM_SETSEL |
ÉèÖñ༿ؼþÖÐÒ»¶ÎÑ¡¶¨ÄÚÈÝµÄÆðµãÒ»ÖÕµã |
ÏÂÃæ½«½éÉÜÎı¾¿ò¿Ø¼þÏûÏ¢µÄһЩӦÓÃ:
ÏÂÃæµÄº¯Êý½«·µ»Ø¿Ø¼þµÄÎı¾ÐÐÊý,Èç¹û¿Ø¼þµÄÎı¾Îª¿ÕÒ²»á·µ»Ø1¡£
Function GetLineCount(CTextBox As TextBox) As Long
¡¡¡¡GetLineCount = SendMessage(CTextBox.hWnd, EM_GETLINECOUNT, 0, 0)
End Function
ÏÂÃæµÄº¯Êý½«·µ»Ø¿Ø¼þÖÐÏÔʾµÄµÚÒ»ÐеÄÐкš£
Function GetFirstVisableLine(CTextBox As TextBox) As Long
¡¡¡¡GetFirstVisableLine = SendMessageBynum(CTextBox.hwnd, EM_GETFIRSTVISIBLELINE,
0, 0)
End Function
ÏÂÃæµÄº¯Êý½«·µ»Ø¿Ø¼þÄÜÏÔʾµÄÐÐÊý¡£
Function GetVisibleLines(CTextBox As TextBox) As Long
Dim rc As RECT
Dim hDC&, lfont&, oldfont&
Dim di&, lc&
Dim tm As TEXTMETRIC
¡¡lc = SendMessage(CTextBox.hwnd, EM_GETRECT, 0, rc)
¡¡lfont = SendMessage(CTextBox.hwnd, WM_GETFONT, 0, 0)
¡¡hDC = GetDC(CTextBox.hwnd)
¡¡If lfont $#@60;$#@62; 0 Then oldfont = SelectObject(hDC, lfont)
¡¡¡¡di = GetTextMetrics(hDC, tm)
¡¡If lfont $#@60;$#@62; 0 Then lfont = SelectObject(hDC, oldfont)
¡¡¡¡GetVisibleLines = (rc.bottom - rc.top) / tm.tmHeight
¡¡¡¡di = ReleaseDC(CTextBox.hwnd, hDC)
End Function
¡¡¡¡ÏÂÃæµÄº¯ÊýÄܹ»¹ö¶¯¿Ø¼þ,²»¹ýÔÚ¹ö¶¯Ö®Ç°×îºÃÅжϿؼþµÄÎı¾ÐÐÊýºÍÄܹ»ÏÔʾµÄÐÐÊý,ÒÔÃâ¹ö¶¯Ê±·¢Éú»ìÂÒ¡£º¯ÊýSendMessageBynumÊÇÒ»¸öSendMessageº¯ÊýµÄ°²È«ÉùÃ÷º¯Êý,Æä¶¨ÒåÓëSendMessageº¯ÊýÍêÈ«Ïàͬ,Ö»ÊǺ¯ÊýÃû²»Í¬¡£
Function ScrollTextBox(CTextBox As TextBox, nVal As Long, _
Optional nVertical As Boolean = True) As Long
¡¡If nVertical Then
¡¡¡¡ScrollTextBox = SendMessageBynum(CTextBox.hwnd, EM_LINESCROLL, 0, nVal)
¡¡Else
¡¡¡¡ScrollTextBox = SendMessageBynum(CTextBox.hwnd, EM_LINESCROLL, nVal, 0)
¡¡End If
End Function
ÏÂÃæµÄº¯ÊýÄܹ»·µ»Ø¿Ø¼þÖ¸¶¨ÐеÄÎı¾¡£SendMessageBystringÓëSendMessageBynumÀàËÆ¡£
Function GetLineText(CTextBox As TextBox, LineIndex As Long) As String
¡¡Dim lc&, linechar&
¡¡linechar = SendMessageBynum(CTextBox.hwnd, EM_LINEINDEX, LineIndex, 0)
¡¡lc = SendMessageBynum(CTextBox.hwnd, EM_LINELENGTH, linechar, 0) + 1
¡¡GetLineText = String$(lc + 2, 0)
¡¡Mid$(GetLineText, 1, 1) = Chr(lc And &HFF)
¡¡Mid$(GetLineText, 2, 1) = Chr(lc \ &H100)
¡¡lc = SendMessageBystring(CTextBox.hwnd, EM_GETLINE, LineIndex, GetLineText)
¡¡GetLineText = left(GetLineText, lc)
End Function
ÏÂÃæµÄº¯Êý¿ÉÒÔÉèÖÿؼþµÄ×ó±ß¾à¡£
Public Const EM_SETMARGINS& = &HD3
Public Const EC_LEFTMARGIN& = &H1
Function SetMargins(CTextBox As TextBox, nVal As Long) As Long
¡¡SetMargins = SendMessageBynum(CTextBox.hwnd, EM_SETMARGINS, EC_LEFTMARGIN,
nVal)
End Function
| | | ¸Ðл
·ÃÎÊÌì¼«Íø£¬Èç¹ûÄú¾õµÃ¸ÃÎÄÕÂÉæ¼°°æÈ¨ÎÊÌ⣬Çë¿´ÕâÀ
|
|