|
只概要地说明一下。
这些讯息允许您剪下、复制或者清除目前被选择的文字。使用者使用滑鼠或者Shift键加上游标控制项键来选择文字并进行上面的操作,这样,在编辑控制项中选中的文字将被加亮:
SendMessage (hwndEdit, WM_CUT, 0, 0) ; SendMessage (hwndEdit, WM_COPY, 0, 0) ; SendMessage (hwndEdit, WM_CLEAR, 0, 0) ;
WM_CUT将目前选择的文字从编辑控制项中移走,并将其发送到剪贴簿中;WM_COPY将选择的文字复制到剪贴簿上并保持编辑控制项中的内容完好无损;WM_CLEAR将选择的内容从编辑控制项中删除,但是不向剪贴簿中发送。
您也可以将剪贴簿上的文字插入到编辑控制项中的游标位置:
SendMessage (hwndEdit, WM_PASTE, 0, 0) ;
您可以取得目前选择的起始位置和末尾位置:
SendMessage (hwndEdit, EM_GETSEL, (WPARAM) &iStart, (LPARAM) &iEnd) ;
结束位置实际上是最後一个选择字元的位置加1。
您可以选择文字:
SendMessage (hwndEdit, EM_SETSEL, iStart, iEnd) ;
您还可以使用别的文字来置换目前的选择内容:
SendMessage (hwndEdit, EM_REPLACESEL, 0, (LPARAM) szString) ;
对多行编辑控制项,您可以取得行数:
iCount = SendMessage (hwndEdit, EM_GETLINECOUNT, 0, 0) ;
对任何特定的行,您可以取得距离编辑缓冲区文字开头的偏移量:
iOffset = SendMessage (hwndEdit, EM_LINEINDEX, iLine, 0) ;
行数从0开始计算,iLine值为-1时传回包含游标所在行的偏移量。您可以取得行的长度:
iLength = SendMessage (hwndEdit, EM_LINELENGTH, iLine, 0) ;
并将行本身复制到一个缓冲区中:
iLength = SendMessage (hwndEdit, EM_GETLINE, iLine, (LPARAM) szBuffer) ;
清单方块类别
我在本章讨论的最後一个预先定义子视窗控制项是清单方块。 |