Win32控件使用——Edit控件

Drecik学习经验分享

转载请注明出处:http://blog.csdn.net/drecik__/article/details/8112844


Edit控件是一个很强大的输入控件,可以处理很多样式,通过VS的控件属性来设置,有单行,多行,密码框,滚动条等。

和Button控件一样,编辑框想父窗口发送WM_COMMAND消息,各个参数的意义也和Button控件的一样:

  • LOWORD(wParam)   子窗口ID
  • HIWORD(wParam)   通知码
  • lParam 子窗口句柄

其中通知码可以如下所示:


  • EN_SETFOCUS 编辑控件获得输入焦点
  • EN_KILLFOCUS 编辑控件失去输入焦点
  • EN_CHANGE 编辑控件的内容将改变
  • EN_UPDATE 编辑控件的内容已变化
  • EN_ERRSPACE 编辑控件没有空间了
  • EN_MAXTEXT 编辑控件没有控件完成插入了
  • EN_HSCROLL 编辑控件水平滚动条被单击了
  • EN_VSCROLL 编辑控件垂直滚动条被单击了

获得Edit控件输入的内容可以通过之前讨论过的通用函数(参考前面的博文),GetWindowText等。

下面列举下常用的使用SendMessage发送给编辑控件的消息:

	// 剪切,复制,删除当前选择内容;
	SendMessage( hWndEdit, WM_CUT, 0, 0 );
	SendMessage( hWndEdit, WM_COPY, 0, 0 );
	SendMessage( hWndEdit, WM_CLEAR, 0, 0 );

	// 将剪贴板上的文本插入到编辑控件的当前位置;
	SendMessage( hWndEdit, WM_PASTE, 0, 0 );

	// 获得当前选择文本的初始位置和终止位置,终止位置时最后一个字符+1;
	SendMessage( hWndEdit, EM_GETSEL, &iStart, &iEnd );

	// 选择文本;
	SendMessage( hWndEdit, EM_SETSEL, iStart, iEnd );

	// 使用其他文本取代当前选择的文本;
	SendMessage( hWndEdit, EM_REPLACESEL, 0, (LPARAM)szString );

	// 获得编辑器的行数;
	iCount = SendMessage( hWndEdit, EM_GETLINECOUNT, 0, 0 );

	// 获得从编辑缓冲区起点到这行的位移量,如果iLine为-1则默认为插入符号所在行;
	iOffset = SendMessage( hWndEdit, EM_LINEINDEX, iLine, 0 );

	// 得到所在行的的长度;
	iLength = SendMessage( hWndEdit, EM_LINELENGTH, iLine, 0 );

	// 复制某一行到缓冲区;
	iLength = SendMessage( hWndEdit, EM_GETLINE, iLine, (LPARAM)szBuffer );

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值