在系统菜单里添加菜单项和相应事件

http://tech.ddvip.com   2006年03月31日    社区交流

本文详细介绍在系统菜单里添加菜单项和相应事件

  有时候我们经常在程序中实现菜单项的重画,已有好多文章已经加以介绍,在此不再赘述。但是有时我们需要加新菜单项到系统菜单中,并希望给其增加相应的事件。笔者通过运用WindowAPI的AppendMenu函数和C++BUIDER的相关方法、属性,实现了往系统菜单中增加菜单项和事件。

  下面介绍具体的实现方法,读者按照以下步骤操作,就可以实现在系统菜单中增加菜单项和事件:

  1 首先创建一个新的空工程文件,存盘为project1.cpp和unit1.cpp。

  2 使用菜单Tools中的Image Editor,打开资源文件project1,新建一个位图并取名为HELP。

  3 在源文件头部定义如下常量作为菜单的标示:

  #define IDM_HELP1   1

  #define IDM_HELP2   2

  #define IDM_REMOVE   3

  #define IDM_SEPARATOR1 4

  #define IDM_SEPARATOR2 5

  4 为Form1创建OnCreate事件,添加代码实现在系统菜单里增加菜单项:

  首先定义菜单句柄和位图句柄:

  HMENU hMenu;

  HBITMAP hBitmapHelp;

  然后获得系统菜单的句柄:

  hMenu = GetSystemMenu (this->Handle, FALSE) ;

  往系统菜单中增加自己的菜单项:

  AppendMenu (hMenu, MF_SEPARATOR,IDM_SEPARATOR1, NULL) ;

  AppendMenu (hMenu, MF_STRING,IDM_HELP1,"帮助") ;

  AppendMenu (hMenu, MF_SEPARATOR,IDM_SEPARATOR2, NULL) ;

  AppendMenu (hMenu, MF_STRING,IDM_REMOVE,"取消菜单") ;

  往菜单中添加位图,首先装载位图资源,获得其句柄,然后将它添加到系统菜单中:

  hBitmapHelp =LoadBitmap ((void*)HInstance, "HELP");

  AppendMenu (hMenu, MF_BITMAP,IDM_HELP2, (char*)hBitmapHelp);

责编:豆豆技术应用

正在加载评论...