引用API函数SetWindowPos就可以解决。下面看看代码:
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为朝阳企业提供专业的成都网站设计、成都网站制作,朝阳网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
Private Declare Function SetWindowPos Lib "user32.dll" (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 LongConst SWP_NOMOVE = H2Const SWP_NOSIZE = H1Const FLAG = SWP_NOMOVE Or SWP_NOSIZEConst HWND_TOPMOST = -1Const HWND_NOTOPMOST = -2Const HWND_TOP = 0Const HWND_BOTTOM = 1
将窗口设置最前:Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAG)取消窗口的最前:Call SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAG)函数的第一个参数是根据实际情况改变的,它要求给它传送一个窗口的句柄,这里的 Me.hwnd 就给函数传送了当前窗口的句柄,也就是将当前窗口前置或取消前置。如果要前置其他窗口,那么请向函数传送其他窗口的句柄,这个可以根据:FindWindow API函数获取。
有一个Api函数···代码我等会给你···呵呵·· 好了···在下面···
Option Explicit
'控制任务栏的隐藏和显示的函数。函数的参数分别为 窗体句柄 窗体显示方式 窗体坐标 窗体坐标 窗体坐标 窗体坐标 函数工作方式标志
'用于确定窗体显示形式的常数为 hwnd_topmst=-1 将窗体保持在最前面 hwnd_notopmost=-2 不将窗体宝石在最前面
'swap_nosize=h1 窗体装入时不改变原有尺寸 swap_nomove=h2 窗体装入时保持原窗体设计师在屏幕上的位置
Private 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
Const hwnd_topmost = -1
Const swp_nosize = H1
Const swp_nmove = H2
Private Sub Form_Load()
SetWindowPos Me.hwnd, hwnd_topmost, 0, 0, 0, 0, swp_nosize Or swp_nmove
'只有swp_nosize的时候大小不变但位置移到了左上角即(0,0)点;只有swp_nmove时位置不变但大小相当于为零;
'这里的“或”的关系是“逻辑加”,因为0001或0010为0011,1+2=3.这里不能用and,用and便为两个都为1才为1,所以结果为0000
End Sub
你是不是用的Visual Studio来开发的?如果是,这样操作:打开 项目 菜单 中的 XXX属性,在弹出的属性页选择最上面那个 应用程序 标签,里面有个启动窗体,你选择一下就可以了。
如果你不是用的visual Studio来开发的,那么可以考虑把另外一个窗口的visible属性先设置为false或者把你要显示的窗口改为对话框的形式,大小比另外一个窗口大一点或者一样(即 模态窗口,必须关闭才能继续操作),这样都可以实现你要的效果。