大家都知道,文本框,列表框这些都是有焦点的控件,它们都有公共的特性。就是你可以通过TAB键和MOUSE单击等转到这个控件中,控件在得到输入焦点时,都会画出光标、虚线矩形以表示这个控件得到焦点。 如果我要用Label,shape这些控件来做一个有焦点的控件,如何去描述?包括:
1、 如何画虚线矩形?
2、 如何去在自定义控件处理TabShop属性和窗体上的其它控件一起协作运行?
3、 如何去接受窗体上的Tab、Shift+Tab等按键消息,得到这个自定义控件获得焦点的消息?
1、 如何画虚线矩形?
2、 如何去在自定义控件处理TabShop属性和窗体上的其它控件一起协作运行?
3、 如何去接受窗体上的Tab、Shift+Tab等按键消息,得到这个自定义控件获得焦点的消息?
别人定义好的窗口类,想改真的很麻烦!
建议你用usercontrol来写好了...你说的123除了1之外,其余的都实现了!
在usercontrol的gotfocus那用API画也行用shape设置好属性显示,隐藏也行!lostfocus就是失去焦点时发生的事件了!API的话drawrocusrect这个吧,专用来画焦点的!调用一次显示,再用就消失了!不过我没用过,不清楚~呵呵
DrawFocusRect VB声明
Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long
说明
画一个焦点矩形。这个矩形是在标志焦点的样式中通过异或运算完成的(焦点通常用一个点线表示)。如用同样的参数再次调用这个函数,就表示删除焦点矩形
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpRect RECT,要在逻辑坐标中描绘的矩形
要真的就在窗体上搞这些可麻烦得很....