Office中国论坛/Access中国论坛

标题: 如何让Access父窗体(主窗体)位于任何windows窗体的前面? [打印本页]

作者: David.cn    时间: 2010-5-27 16:27
标题: 如何让Access父窗体(主窗体)位于任何windows窗体的前面?
各位好,目前我写程序用到了通过一个access应用程序 A ,调用另一个Access应用程序 B,并打开B中的一个窗体显示所要查询到的信息。这些功能我都实现了,只是,Access应用程序B这个主窗体不能跑到任何Windows窗体的前面。每次都要手动鼠标点击。
我也使用了以下代码,却还是不行。
  dim B as Access.Application
   
  B.OpenAccessProject("C:\pro\B.adp")
  B.DoCmd.OpenForm "from1", acNormal, , "编号='" & Me.编号 & "' ", , acWindowNormal
  B.Forms("form1").SetFocus
   
  Dim lpPoint As POINTAPI
  Call GetCursorPos(lpPoint)

  Call SetWindowPos(GetParent(B.Forms("form1").hwnd), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE)
  Call ShowWindow(GetParent(B.Forms("form1").hwnd), SW_SHOWMAXIMIZED)
希望有人帮忙啊!
作者: David.cn    时间: 2010-5-28 13:23
竟没有一个人回答!
作者: David.cn    时间: 2010-5-28 14:44
ACMAIN_CHM, 我在这里也发了,根本没有人回答!
作者: David.cn    时间: 2010-6-1 17:03
A.mdb的下载地址是:http://download.csdn.net/source/2416272
B.mdb的下载地址是:http://download.csdn.net/source/2416284
在A调用B时,请先实验A调B,关闭B,再调B,些B是可以前置所有窗口之前的。
再实验A调B,不关B,点击A中不同的数据记录再调用B,此时B是不能前置所有窗口之前的,但是,B的资料是会发生改变的!
请各位朋友下载附件测试一下!
作者: lkkl66    时间: 2010-8-25 22:39
本帖最后由 lkkl66 于 2010-8-25 22:43 编辑

回复 David.cn 的帖子

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
    在窗体加载事件:
=================================
Private Sub Form_Load()   
DoCmd.RunCommand acCmdAppMinimize     '登录时的窗口突出化
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3 '登录时的窗口置前
SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3 '马上恢复正常
End Sub
==========================

作者: xjb_test    时间: 2010-9-2 10:19
路过支持一下...  呵呵!

作者: 仕国    时间: 2010-9-28 17:24
学习
作者: 仕国    时间: 2010-9-28 17:24
路过
作者: li08hua    时间: 2010-10-23 12:18
谢谢指教!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3