vb中怎么使得生成的vb程序始终保持焦点,在没有关闭这个程序之前不能是其他应用程序获得焦点
注意看清楚:是vb程序占住焦点,其他应用程序在它没有关闭之前不能获得焦点。而不是vb中始终保持一个窗体获得焦点,其他窗体不能获得焦点!获得焦点是针对其他系统运行的应用程序...
注意看清楚:是vb程序占住焦点,其他应用程序在它没有关闭之前不能获得焦点。而不是vb中始终保持一个窗体获得焦点,其他窗体不能获得焦点!
获得焦点是针对其他系统运行的应用程序而言。而不是vb中一个窗体针对另一个窗体而言! 展开
获得焦点是针对其他系统运行的应用程序而言。而不是vb中一个窗体针对另一个窗体而言! 展开
4个回答
展开全部
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下, Name: LblBtn, BorderStyle: 1, Appearance: 0, Alignment: 2, 这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码: Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色 Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色 Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色 再在Form的Load事件中输入以下内容 Private Sub Form_Load() Dim Count As Integer For Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1 LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景 Next Count End Sub 然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分: Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’当鼠标按在LblBtn上时 LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色 End Sub Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’鼠标在LblBtn上面移动时触发该事件 Dim Count As Integer DoEvents ’暂时将系统控制权教给系统 If Button Then Exit Sub ’如果按钮被按下就退出该过程 For Count = 0 To 3 If Count <> Index Then ’如果按下的不是其它按钮 LblBtn(Index).BackColor = LBL_BACK_COLOR ’将背景设为正常 Else LblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景 End If Next Count End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim Count As Integer DoEvents For Count=0 To 3 LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景 Next Count End
参考资料: http://wenwen.soso.com/z/q110837564.htm
展开全部
'''''声明
Option Explicit
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H8
'定义
Public Sub SetFormTopmost(TheForm As Form)
SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE
End Sub
‘调用
SetFormTopmost frmMain
Option Explicit
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H8
'定义
Public Sub SetFormTopmost(TheForm As Form)
SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE
End Sub
‘调用
SetFormTopmost frmMain
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-07
展开全部
这个ms有点困难,因为不但要控制鼠标,还要控制键盘,对于鼠标控制,可以用ClipCursor限制光标区域,对于键盘切换操作,恩,恐怕只有写程序拦截键盘消息了,麻烦麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-08
展开全部
用get focus 函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询