首页 / 软件开发 / C++ / 在系统菜单里添加菜单项和相应事件
在系统菜单里添加菜单项和相应事件2008-01-05有时候我们经常在程序中实现菜单项的重画,已有好多文章已经加以介绍,在此不再赘述。但是有时我们需要加新菜单项到菜单中,并希望给其增加相应的事件。笔者通过运用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 54 为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);