当然上边三个函数可以合成一个函数,因为他们方法是一样的,只是风格参数不同而已。
VB本身提供两种风格:Flat和3D,但是也许你想改变一下外观,比如让TextBox的边界介于Flat和3D之间那种效果,如图:
怎么做呢?在VC中我们在创建一个窗口对象时可以制定它的风格,但是在VB中,IDE已经按照它自己的想法给我创建好了,如果我们想要改变它只能把已经存在的进行修改,这时我们就需要借助的GetWindowLong和SetWindowLong兄弟的帮助来完成这个任务了。
‘首先将原始的窗口属性读出来
‘这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置。该函数与DeferWindowPos函数相似,只是它的作用是立即表现出来的(在vb里使用:针对vb窗体,如它们在win32下屏蔽或最小化,则需重设最顶部状态。如有必要,请用一个子类处理模块来重设最顶部状态)
*当然上边的函数可以用在所有窗口对象上,只不够有些窗口对象不需要这么做。
如果窗体中有很多TextBox需要这样设置,而且不都是控件数组,那么可以在包装一下上面的函数:
VB 中可以设置TextBox中文本水平方向居左、居右、居中,但是不能设置垂直方向,也不能微调文本距离左边界的距离,但是我们还是可以借助API的帮助来完成这个需求:
'实现这个效果首先TextBox的MultiLine属性必须为True(多行文本,其实这个属性关系创建TextBox内部使用哪个类,因此一旦创建就不能修改这个属性,所以不能在代码中修改这个属性)
这样我们就达到了文本垂直居中的目的,其实只要用的熟了,找到切入点,还是很容易实现的。
如果你查看TextBox中常用的消息,你会发现有这样一对消息:EM_GETMARGINS 和EM_SETMARGINS,MSDN的解释是:获取和设置编辑控件的左、右边距(不得用于NT3.51)。具体是左还是右由该消息的参数决定。
看到这些也许你就知道我们可以用这两个消息完成我们的需求,好下面实际着手进行验证:
好经过测试目的达到,但是这样做有什么意义呢?有的时候如果你想在texebox中放入其他对象,而又不希望文本被覆盖掉,你就需要用到这个方法。
这是来自google的广告, 支持的朋友点一下,如果你不想被骚扰, 可单击此处
如果你需要做一些附加的操作,你也不必担心,日期控件自带的自定义事件可以满足你的需求.此外,你还可以在自定义事件中调用提供的API库来做更多的运算和扩展,绝对可以通过很少的代码满足你及其个性化的需求.
注意下面几个重要的指针,将对你的编程带来很多便利
注意:函数原型必须使用类似 function(dp){} 的模式,这样子,在函数内部才可以使用dp
注意:当onclearing函数返回true时,系统的清空事件将被取消,
函数体里面没有引用$dp,所以函数原型里面可以省略参数dp
下面是有关这两个属性的描述详见
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。