Re: Detect a form's window mode

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



"dch3" <dch3@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message news:A9227DAB-D5D6-412C-8BC6-5C5340B43409@xxxxxxxxxxxxxxxx
I'm already passing in some .OpenArgs used for setting values in the controls
- some of the forms are used with .NotInList events. Given that I'm trying to
be consistent in how my data collection forms operate, I was hoping to avoid
having to go back and modify the DoCmd that open the forms and the various
Loads.

I sympathize.

Hmm. By looking at the window classes of the form and of its parent window, I can tell whether the form is popup or not. If it's opened in dialog mode, it's also popup, so if I don't have to distinguish between dialog mode and plain old popup, this can work:

'----- code for form -----
Private Declare Function apiGetParent Lib "user32" _
Alias "GetParent" (ByVal hwnd As Long) As Long
'Returns the handle of the parent window of the specified window.

Private Sub Form_Load()

Dim hWndParent As Long

Debug.Print "Me", Me.hwnd, fGetClassName(Me.hwnd)

hWndParent = apiGetParent(Me.hwnd)
Debug.Print "Parent", hWndParent, fGetClassName(hWndParent)

Debug.Print "Access", Application.hWndAccessApp, _
GetClassName(Application.hWndAccessApp)

' Note: fGetClassName comes from a module posted on the Access Web,
' but it looks like you don't really need it, so I won't post the link now.

End Sub

'----- end code -----

In Immediate window:

DoCmd.OpenForm "frmDialog"
Me 5048118 OForm
Parent 60031730 MDIClient
Access 68158248 OMain

(close form between calls)

Docmd.OpenForm "frmDialog", WindowMode:=acDialog
Me 5310262 OFormPopup
Parent 68158248 OMain
Access 68158248 OMain

So it looks like, if the parent Hwnd is the same as hWndAccessApp, the form is popup or dialog. I haven't tested this exhaustively, but it's a step in the right direction.


--
Dirk Goldgar, MS Access MVP
www.datagnostics.com

(please reply to the newsgroup)

.



Relevant Pages

  • Re: Detect a forms window mode
    ... By looking at the window classes of the form and of its parent window, ... I can tell whether the form is popup or not. ... 'Returns the handle of the parent window of the specified window. ... Private Sub Form_Load ...
    (microsoft.public.access.modulesdaovba)
  • Re: popup window: Return value to correct text box?
    ... On Nov 6, 1:21 pm, bruce barker ... popup window is placed in text box 1 on the parent form. ... PARENT WINDOW ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Link from a popup needs to open a new parent window
    ... In this popup are several links. ... I want these links to open in A NEW parent window. ... Who can help me with a working sample? ...
    (comp.lang.javascript)
  • Re: Reference window.opener after redirecting the popup
    ... to another page, not the parent window. ... And it is the popup who needs to ... > You have to make a master frameset with a 100% height frame where all your ... > stuff wil happen (like the window with the pages right now). ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Destroy problems with an un-parented dialog-window
    ... with a Zero as its hWndParent, so I think I can be pretty sure its ... window handle in the first place? ... but allso a dialog) exists. ... Why are you creating a modeless dialog by passing a NULL parent window ...
    (microsoft.public.win32.programmer.kernel)