DOCUMENT:Q131600  24-AUG-1999  [foxpro]
TITLE   :How to Customize RightClick Behavior
PRODUCT :Microsoft FoxPro
PROD/VER:3.00
OPER/SYS:
KEYWORDS:kbcode

======================================================================
-------------------------------------------------------------------------------
The information in this article applies to:

 - Microsoft Visual FoxPro for Windows, version 3.0 
-------------------------------------------------------------------------------

SUMMARY
=======

Under certain circumstances, you may want to customize the behavior of the right
mouse button. In Visual FoxPro, you usually click the right mouse button to
bring up additional popup menus. This article shows by example how to do the
same thing in your applications. You can present the user with a popup menu of
choices (including a choice to Exit) when the user clicks the right mouse
button.

MORE INFORMATION
================

You cannot change the default behavior of the _Screen.RightClick method, so
instead of using the RightClick method, use an ON KEY LABEL RIGHTMOUSE command
to achieve the desired result.

For example, the following code sample defines a window for the popup, builds the
popup, and then executes a WAIT WINDOW showing the user's choice.

To make the following code example work, type the following command in the
Command window:

      ON KEY LABEL RIGHTMOUSE DO RightPop

Note that for this example, when you press the ESC key, the ON KEY LABEL
definitions are reset, so this only works for a single pass as it is written. To
force the definition for the right mouse button to remain in effect even after
the ESC key is pressed, comment out the ON KEY LABEL RIGHTMOUSE command in
RelWind procedure.

NOTE: To place the popup at the mouse pointer's location, use the MCOL() and
MROW() functions to retrieve the X & Y coordinates for use when defining the
popup's window.

Code Sample
-----------

   *------------------------------------------------------------------------*
   * Program: RightPop                                                      *
   * Purpose: Demonstrate how to mimic the behavior of the right mouse      *
   *          button in Visual FoxPro.                                     *
   *------------------------------------------------------------------------*
   ON KEY LABEL esc DO RelWind IN RightPop

   DEFINE WINDOW test FROM 0,0 to 5,12 FLOAT CLOSE NOMINIMIZE

   DEFINE POPUP conversion MARGIN RELATIVE SHADOW COLOR SCHEME 4 ;
      IN WINDOW test
   DEFINE BAR 1 OF conversion PROMPT 'Ar\<ea' KEY CTRL+E, '^E'
   DEFINE BAR 2 OF conversion PROMPT '\<Length' ;
      KEY CTRL+L, '^L'
   DEFINE BAR 3 OF conversion PROMPT 'Ma\<ss' ;
      KEY CTRL+S, '^S'
   DEFINE BAR 4 OF conversion PROMPT 'Spee\<d' ;
      KEY CTRL+D, '^D'

   ON SELECTION POPUP conversion;
      DO choice IN RightPop WITH PROMPT( ), POPUP( )
   ACTI WINDOW test
   ACTIVATE POPUP conversion NOWAIT

   PROCEDURE choice
   PARAMETERS mprompt, mpopup
   WAIT WINDOW 'You chose ' + mprompt + ;
       ' from popup ' + mpopup NOWAIT

   PROCEDURE RelWind
   On Key Label Esc
   On Key Label RightMouse
   Release Window Test
   *----------------------------< End program code >------------------------*

Additional query words: VFoxWin _SCREEN rightclick

======================================================================
Keywords          : kbcode 
Technology        : kbVFPsearch kbAudDeveloper kbVFP300
Version           : 3.00

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1999.