图形编辑器中的文本框实现(sdk)

实现过程大致如下:现在屏幕上画出一个矩形框,表示文本框的编辑范围;此时需创建一个edit窗口,多行的属性,没有边框(因为已经有矩形边框了),先把它隐藏起来ShowWindow(hedit,SW_HIDE).当鼠标左键在此区域双击时,就把此edit窗口显示出来ShowWindow(hedit,SW_SHOW),就可以在此edit中输入文本,当结束编辑时,需要把edit中的每行文本取出存入一个字符串中,然后把edit窗口再次隐藏,把字符串以同样的格式显示在此举行边框内,使用DrawText函数即可。这是基本的功能,当然还可以添加矩形框的背景色,边框颜色,修改文本框中的字体属性等等

这里需要注意的是,当得到多行编辑窗口的总行数后(给编辑框发EM_GETLINECOUNT消息),对每一行获取文本时(给编辑框发EM_GETLINE消息),接受字符串的缓冲区的第一个字符必须初始化成你要接收的最大字符数(msdn里有介绍,本人一开始也没仔细看,导致郁闷了一时),当获得一行字符串时,必须在其后添个换行符(TEXT('/n')),再添个结束符TEXT('/0').以便进行多行字符串的连接

另外在实现edit中的复制WM_COPY,粘贴WM_PASTE,剪切WM_CUT文本功能时,可以直接给edit发消息完成,不用自己实现,但是在复制之前,一定要把剪贴板清空,否则粘贴的东西可能不是自己想要的东西。。。

OpenClipboard(GetParent(hEdit));//打开edit的父窗口关联的剪贴板
  EmptyClipboard();//清空剪贴板
  CloseClipboard();//再关闭剪贴板

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值