实际上我的编辑框的大小也不是固定的,之所以说是固定的,只是为了更好地搞清主要问题。至于用计算字数的方法,我认为不可取,备注字段内容假如是:程序实例
这是4个汉字。如果内容是:
程序
实例
这也是4个汉字,但显示出来的结果就完全不同了。
另外,如果加下英文单词,会有若干种折行的可能,因此用计算字数的方法是行不通的。
我现在已经找到了一个非常好的方法:
1、将内容送到EDIT1中,然后在键盘缓冲区中加入翻页,使光标定位到文字最后。
2、在内容中追加一个字符,然后在键盘缓冲区中加入退格键删除加入的字符,触发INTERACTIVECHANG事件
3、读取行数,将焦点送到另一个控件
4、在另一个控件中加入thisform.edit1.fontsize=thisform.edit1.fontsize+1,使字号加1
5、将焦点送回EDIT1,读取行数(眼睛看到的行数可能没有发生变化,但读取的行数可能已经发生了变化)
6、使1-5步循环,当EDIT1的大小容纳不下所有的内容时,读取到的行数会忽然变成一个很小的数,此时表明EDIT1刚好无法容纳整个内容了,这个时候将字号-1,这个字号就是当前EDIT1即能容纳全部内容,又是最大的字号了。
这样无论用户是否随时改变了EDIT1的大小,都能做到在显示全部内容的同时,字号是最大的。这个已经通过测试了。
----------------------------------------------------------------
现在问题又来了,我想让EDIT控件是透明的,但是EDIT在获得焦点后就不是透明的了,失去焦点后才会恢复透明,如何能使EDIT控件在获得焦点的时候也是透明的呢?请哪位指教一下,谢谢啦!