Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
_Screen.Activeform.Name NOT accurate
Message
De
07/06/2007 15:29:06
Walter Meester
HoogkarspelPays-Bas
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Divers
Thread ID:
01230724
Message ID:
01231430
Vues:
21
>Has someone (Doug?) submitted this as a bug so that maybe it can get fixed in SP2?

Not me, since it is very difficult to get a small repro I can send off.

Walter,


>>Hi Doug,
>>
>>Basically it is more or less implemeted like below.
>>In our case on a desktop form:
>>
>>
FUNCTION init()
>>
>>declare integer GetWindowLong in Win32API integer hWnd, integer nIndex
>>declare integer CallWindowProc in Win32API ;
>>	integer lpPrevWndFunc, integer hWnd, integer Msg, integer wParam, integer lParam
>>
>>* Get a handle for the VFP Windows event handler.
>>This.nOldProc = GetWindowLong(_screen.hWnd, GWL_WNDPROC)
>>
>>* Bind to the Windows events we're interested in.
>>bindevent(_vfp.hWnd, WM_ACTIVATE,      This, 'HandleEvents')
>>RETURN
>>
>>*-
>>
>>FUNCTION HandleEvents
>>LPARAMETERS HWND, Msg, wParam, tlParam
>>LOCAL lcCaption, lnParm, lcPath
>>
>>IF Msg = WM_ACTIVATE
>>	DO CASE
>>		CASE wParam = WA_INACTIVE
>>			* Handle a deactivate event.
>>			THIS.lastwontop=WONTOP()
>>			* Handle an activate event (task switch or clicking on the title bar, clicking in the client area of the window).
>>
>>		CASE INLIST(wParam,  WA_ACTIVE, WA_CLICKACTIVE)
>>			IF NOT EMPTY(THIS.lastwontop)
>>				ACTIVATE WINDOW (THIS.lastwontop)
>>			ENDIF
>>			this.lastwontop=""
>>	ENDCASE
>>ENDIF
>>*-- this plays the role of dodefault():
>>RETURN THIS.HandleWindowsMessage(HWND, Msg, wParam, tlParam)
>>
>>*-
>>
>>FUNCTION HandleWindowsMessage
>>LPARAMETERS hWnd, nMsg, wParam, lParam
>>LOCAL nResult
>>
>>nResult = CallWindowProc(This.nOldProc, hWnd, nMsg, wParam, lParam)
>>RETURN nResult
>>
>>
>>
>>
>>
>>
>>>Hi Walter.
>>>
>>>>For the last couple of months we had significant trouble with activeX controls on modal forms causing VFP to be confused about the activeForm. The result was that a modeless form behind the modal form became active and the application locked up. We finally has a solution that involved using WONTOP() and some bindevents() and avoided the problem.
>>>
>>>Could you be more specific about your solution? Thanks.
>>>
>>>Doug
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform