• 5012阅读
  • 19回复

[讨论]关于vfp9.0的系统菜单 [复制链接]

上一主题 下一主题
 

发帖
33
浏览券
83
威望
8
贡献值
0
下载币
1
只看楼主 倒序阅读 使用道具 楼主  发表于: 2015-05-11

自己新建一个菜单,生成mymenu.mpr菜单文件。
打开vfp9.0可以用do mymenu.mpr替换系统菜单,但是每次重新打开vfp9.0又会回到默认状态
do mymenu.mpr 然后 set sysmenu save 也不行

如果想让vfp9.0每次打开都自动加载mymenu.mpr菜单,需要怎么实现呀,可以直接修改vfp9.0的系统菜单文件吗?如果可以修改,在那个位置可以找到系统菜单?

发帖
2419
浏览券
10005
威望
114
贡献值
8
下载币
1052
只看该作者 沙发  发表于: 2015-05-12
描述有点问题:不是打开VFP时自动加载自定义的菜单,而应该是在程序中使用自定义的菜单而不是使用系统默认的菜单。

发帖
2419
浏览券
10005
威望
114
贡献值
8
下载币
1052
只看该作者 板凳  发表于: 2015-05-12
先在主程序中先设置系统默认的菜单不可见
_screen.visible=.f.
再在顶层表单中设置自定义的菜单
DO mymenu.mpr with THIS,.T.
最后在建一个config.fpw文件,内容为:
SCREEN=OFF
RESOURE=OFF

发帖
33
浏览券
83
威望
8
贡献值
0
下载币
1
只看该作者 地板  发表于: 2015-05-12
L楼上的请看清楚我的内容,我是说vfp9.0系统菜单,而不是说的vfp编译程序中的菜单。。。
指的是vfp9.0 sp2自身的菜单,明白了吗?

发帖
1079
浏览券
1418
威望
29
贡献值
0
下载币
1048
只看该作者 4楼 发表于: 2015-05-12
参考:

   * SET SYSMENU NOSAVE
   * SET SYSMENU TO DEFAULT
  
   SET BORDER TO SINGLE
  
   SET SYSMENU TO
  
   RELEASE PAD _msm_file OF _msysmenu
   RELEASE PAD _msm_edit OF _msysmenu
   RELEASE PAD _msm_data OF _msysmenu
   RELEASE PAD _msm_recrd OF _msysmenu
   RELEASE PAD _msm_prog OF _msysmenu
   RELEASE PAD _msm_windo OF _msysmenu
   RELEASE PAD _msm_systm OF _msysmenu
  
   RELEASE PAD _mreport OF _msysmenu
   RELEASE PAD _mlabel OF _msysmenu
   RELEASE PAD _mbrowse OF _msysmenu
   RELEASE PAD _mmacro OF _msysmenu
   RELEASE PAD _mdiary OF _msysmenu
   RELEASE PAD _mfiler OF _msysmenu
   RELEASE PAD _mscreen OF _msysmenu
   RELEASE PAD _mmbldr OF _msysmenu
   RELEASE PAD _mproj OF _msysmenu
   RELEASE PAD _mrqbe OF _msysmenu
  
   RELEASE PAD _msm_text OF _msysmenu
  
   PRIVATE m.q_menu_nn,m.q_menu_len
   m.q_menu_nn=0
   m.q_menu_len=0
  
  
   DEFINE PAD _dbk_file OF _msysmenu PROMPT _tt("文件")+"(\<F)" KEY alt+F,"ALT+F" COLOR (rgbscheme(03))
   ON PAD _dbk_file OF _msysmenu ACTIVATE POPUP _dbk__file
   DEFINE POPUP _dbk__file RELATIVE COLOR (rgbscheme(04))
  
   m.q_menu_nn=0
   m.q_menu_len=16
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_new OF _dbk__file PROMPT SPACE(2)+PADR(_tt("新建")+"(\<N)...",m.q_menu_len) KEY ctrl+N,"CTRL+N"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_open OF _dbk__file PROMPT SPACE(2)+PADR(_tt("打开")+"(\<O)...",m.q_menu_len) KEY ctrl+o,"CTRL+O"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_close OF _dbk__file PROMPT SPACE(2)+PADR(_tt("关闭")+"(\<C)",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_sp100 OF _dbk__file PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_save OF _dbk__file PROMPT SPACE(2)+PADR(_tt("保存")+"(\<S)",m.q_menu_len) KEY ctrl+s,"CTRL+S"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_savas OF _dbk__file PROMPT SPACE(2)+PADR(_tt("另存为")+"(\<A)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_revrt OF _dbk__file PROMPT SPACE(2)+PADR(_tt("还原")+"(\<R)",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_sp200 OF _dbk__file PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_print OF _dbk__file PROMPT SPACE(2)+PADR(_tt("打印")+"(\<P)...",m.q_menu_len) KEY ctrl+p,"CTRL+P"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mfi_sp300 OF _dbk__file PROMPT "\-"
  
   #IF ( .T..OR._debug)
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _mwi_cmd OF _dbk__file PROMPT SPACE(2)+PADR(_tt("命令窗口")+"(\<C)",m.q_menu_len) KEY ctrl+f2,"CTRL+F2"+SPACE(2)
   #ENDI
  
   IF (TYPE("m.p_onkey_pquityn")="N".AND.!m.p_onkey_pquityn=0)
      m.q_menu_nn=m.q_menu_nn+1
      DEFINE BAR m.q_menu_nn OF _dbk__file PROMPT SPACE(2)+PADR(_tt("退出程序")+"(\<X)",m.q_menu_len) KEY alt+X,"ALT+X"+SPACE(2)
      ON SELECTION BAR m.q_menu_nn OF _dbk__file DO pquityn
   ENDI
  
   IF (TYPE("m.p_onkey_pmainyn")="N".AND.!m.p_onkey_pmainyn=0)
      m.q_menu_nn=m.q_menu_nn+1
      DEFINE BAR m.q_menu_nn OF _dbk__file PROMPT SPACE(2)+PADR(_tt("返回主控")+"(\<Y)",m.q_menu_len) KEY alt+y,"ALT+Y"+SPACE(2)
      ON SELECTION BAR m.q_menu_nn OF _dbk__file DO pmainyn
   ENDI
  
   IF (TYPE("m.p_onkey_pmenudesktop")="N".AND.!m.p_onkey_pmenudesktop=0)
      m.q_menu_nn=m.q_menu_nn+1
      DEFINE BAR m.q_menu_nn OF _dbk__file PROMPT SPACE(2)+PADR(_tt("中央菜单")+"(\<D)",m.q_menu_len) KEY f10,"F10"+SPACE(2)
      ON SELECTION BAR m.q_menu_nn OF _dbk__file DO pmenudesktop
      SET MARK OF BAR m.q_menu_nn OF _dbk__file TO m.p_menudesktop
   ENDI
  
  
   DEFINE PAD _dbk_edit OF _msysmenu PROMPT _tt("编辑")+"(\<E)" KEY alt+E,"ALT+E" COLOR (rgbscheme(03))
   ON PAD _dbk_edit OF _msysmenu ACTIVATE POPUP _dbk__edit
   DEFINE POPUP _dbk__edit RELATIVE COLOR (rgbscheme(04))
  
   m.q_menu_nn=0
   m.q_menu_len=18
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_undo OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("复原")+"(\<U)",m.q_menu_len) KEY ctrl+z,"CTRL+Z"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_redo OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("重做")+"(\<D)",m.q_menu_len) KEY ctrl+R,"CTRL+R"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_sp100 OF _dbk__edit PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_cut OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("剪切")+"(\<T)",m.q_menu_len) KEY ctrl+X,"CTRL+X"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_copy OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("复制")+"(\<C)",m.q_menu_len) KEY ctrl+C,"CTRL+C"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_paste OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("粘贴")+"(\<P)",m.q_menu_len) KEY ctrl+v,"CTRL+V"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_pstlk OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("选择性粘贴")+"(\<S)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_clear OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("删除")+"(\<A)",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_sp200 OF _dbk__edit PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_slcta OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("全部选定")+"(\<L)",m.q_menu_len) KEY ctrl+A,"CTRL+A"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_sp300 OF _dbk__edit PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_find OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("查找")+"(\<F)...",m.q_menu_len) KEY ctrl+F,"CTRL+F"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_finda OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("再次查找")+"(\<G)",m.q_menu_len) KEY ctrl+G,"CTRL+G"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_repl OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("替换")+"(\<E)...",m.q_menu_len) KEY ctrl+l,"CTRL+L"+SPACE(2)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_goto OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("定位行")+"(\<N)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_sp400 OF _dbk__edit PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_insob OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("插入对象")+"(\<I)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_obj OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("对象")+"(\<O)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_link OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("连接")+"(\<K)...",m.q_menu_len)
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_sp500 OF _dbk__edit PROMPT "\-"
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR _med_pref OF _dbk__edit PROMPT SPACE(2)+PADR(_tt("属性")+"(\<R)...",m.q_menu_len)
  
  
   DEFINE PAD _dbk_help OF _msysmenu PROMPT _tt("帮助")+"(\<H)" KEY alt+H,"ALT+H" COLOR (rgbscheme(03))
   ON PAD _dbk_help OF _msysmenu ACTIVATE POPUP _dbk__help
   DEFINE POPUP _dbk__help RELATIVE COLOR (rgbscheme(04))
  
   m.q_menu_nn=0
   m.q_menu_len=LEN(_tt("关于")+LEFT(fdbkver(),AT(" ",fdbkver()+" ")-1)+"(\<A)...")
  
   m.q_menu_nn=m.q_menu_nn+1
   DEFINE BAR m.q_menu_nn OF _dbk__help PROMPT SPACE(2)+PADR(_tt("关于")+LEFT(fdbkver(),AT(" ",fdbkver()+" ")-1)+"(\<A)...",m.q_menu_len)
   ON SELECTION BAR m.q_menu_nn OF _dbk__help DO pdbkabout
  
VFP C++编译软件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler

发帖
33
浏览券
83
威望
8
贡献值
0
下载币
1
只看该作者 5楼 发表于: 2015-05-13
Set sysmenu save
不是应该能设置为默认菜单吗?为什么重启后还是会还原?我如果想直接修改他的菜单文件,要在什么位置才能找到?

发帖
1079
浏览券
1418
威望
29
贡献值
0
下载币
1048
只看该作者 6楼 发表于: 2015-05-13
Set sysmenu save
只是把系统菜单存储在内存中,没有存储到某个文件或注册表中,退出vfp后就没有了。

如果需要每次启动后都自动使用自定义系统菜单,
可以在CONFIG.FPW中设置:
COMMAND=do mymenu.mpr

使用自定义系统菜单后,如果需要恢复默认vfp系统菜单:
SYS(1029,0) && creates old(fox) style menus
SYS(1029,1) && creates new(vfp) style menus
VFP C++编译软件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler

发帖
33
浏览券
83
威望
8
贡献值
0
下载币
1
只看该作者 7楼 发表于: 2015-05-13
哦!看来应该是我电脑系统的兼容性问题了,我用修改config.fpw的方法也是没有反应,我用的是汉化版的vfp9.0+win8.1,安装vfp9.0根目录里没有config,我是自己在桌面上新建了一个config.fpw,然后用记事本程序打开 ,写入command=do mymenu.mpr然后保存,再粘贴进vfp根目录的,因为在vfp9.0根目录中不允许修改config.fpw文件.

发帖
33
浏览券
83
威望
8
贡献值
0
下载币
1
只看该作者 8楼 发表于: 2015-05-13
回 CCB2000 的帖子
CCB2000:Set sysmenu save
只是把系统菜单存储在内存中,没有存储到某个文件或注册表中,退出vfp后就没有了。
如果需要每次启动后都自动使用自定义系统菜单,
可以在CONFIG.FPW中设置:
....... (2015-05-13 06:36) 

Vfp9.0自身的菜单文件放在哪个文件夹?文件名是什么?这该也是可以修改吧,如果我找到后,打自己定义菜单的内容添加进去,是不是也能实现每次一打开vfp9.0就看到自己定义的菜单了

发帖
1647
浏览券
1918
威望
41
贡献值
28
下载币
33
只看该作者 9楼 发表于: 2015-05-13
楼主的意思可能是启动VFP的设计环境时自动执行VFP写的程序代码。

可以在启动 VFP 时使用命令行选项,如:快捷键设置  
"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" -CC:\TEMP\Test\MyAPP.fpw

** MyAPP.fpw
COMMAND = MESSAGEBOX("启动VFP时自动执行")


快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个