HOWTO: Overriding Default Right-Click Behavior in Editor Window
ID: Q193626
|
The information in this article applies to:
-
Microsoft Visual FoxPro for Windows, versions 5.0, 5.0a, 6.0
SUMMARY
If you open an Editor window in Visual FoxPro 5.0 or later, right-clicking
in the Editor window displays a context menu. You may choose to use the
Editor window in a run-time application and you may want to override the
default menu to either not display a menu or to display a custom menu.
MORE INFORMATION
The editor is normally invoked with the MODIFY COMMAND <filename>, MODIFY
FILE <filename>, or MODIFY MEMO <memo fieldname> command. In a run-time
application, you are most likely to use MODIFY FILE or MODIFY MEMO.
The way to override the default right-click behavior involves associating a
command or procedure with an ON KEY LABEL RIGHTCLICK, and issuing a WAIT
command to remove the right-click and cause the default menu not to
display.
Overriding the Default Menu with No Menu
The following code sample demonstrates how to make no menu appear with the
right-click:
LOCAL lcFileName
* Name a temporary text file.
lcFileName = SYS(3)+'.txt'
* Store its contents to the clipboard.
_CLIPTEXT = "Line 1"+CHR(13)+"Line 2"+CHR(13)
KEYBOARD '{ctrl+v}{ctrl+w}'
* Paste the contents into the file, then save and close the file.
MODIFY FILE (lcFileName)
* Set the RIGHTMOUSE behavior to the WAIT command to remove right-click.
ON KEY LABEL RIGHTMOUSE WAIT ""
MODIFY FILE (lcFileName)
DELETE FILE (lcFileName)
* Reset the default RIGHTMOUSE behavior
ON KEY LABEL RIGHTMOUSE
Overriding Default Menu With A Custom Menu
The following code sample demonstrates how to make a custom menu appear
with the right-click. The custom menu contains the normal edit menu
functionality of Undo, Redo, Copy, Paste, Cut, and Select All.
LOCAL lcFileName
* Name a temporary text file.
lcFileName = SYS(3)+'.txt'
* Store its contents to the clipboard.
_CLIPTEXT = "Line 1"+CHR(13)+"Line 2"+CHR(13)
KEYB '{ctrl+v}{ctrl+w}'
* Paste the contents into the file, then save and close it.
MODIFY FILE (lcFileName)
* Set the RIGHTMOUSE behavior.
ON KEY LABEL RIGHTMOUSE MenuFunction()
MODIFY FILE (lcFileName)
DELETE FILE (lcFileName)
* Reset the default RIGHTMOUSE behavior.
ON KEY LABEL RIGHTMOUSE
FUNCTION MenuFunction()
WAIT "" && This removes the right-click.
IF POPUP('shortcut')
* Let's make sure we don't display the menu twice.
DEACTIVATE POPUP shortcut
ELSE
DEFINE POPUP shortcut shortcut RELATIVE
DEFINE BAR _MED_UNDO OF shortcut PROMPT "\<Undo" ;
MESSAGE "Undoes the last command or action"
DEFINE BAR _MED_REDO OF shortcut PROMPT "Re\<do" ;
MESSAGE "Repeats the last command or action"
DEFINE BAR 3 OF shortcut PROMPT "\-"
DEFINE BAR _MED_COPY OF shortcut PROMPT "\<Copy" ;
MESSAGE "Copies the selection onto the Clipboard"
DEFINE BAR _MED_PASTE OF shortcut PROMPT "\<Paste" ;
MESSAGE "Pastes the contents of the Clipboard"
DEFINE BAR _MED_CUT OF shortcut PROMPT "Cu\<t" ;
MESSAGE "Removes the selection and places it on the Clipboard"
DEFINE BAR _MED_SLCTA OF shortcut PROMPT "Se\<lect All" ;
MESSAGE "Selects all text or items in the current window"
ENDIF
* Activate it where we clicked.
ACTIVATE POPUP shortcut AT MROW(),MCOL()
* Deactivate it after we click outside of the menu.
DEACTIVATE POPUP shortcut
RETURN
ENDFUNC
REFERENCES
(c) Microsoft Corporation 1998. All Rights Reserved. Contributions by Jim
Saunders, Microsoft Corporation
Additional query words:
kbvfp500 kbvfp500a kbvfp600
Keywords :
Version : WINDOWS:5.0,5.0a,6.0
Platform : WINDOWS
Issue type : kbhowto