admin 管理员组

文章数量: 1184232

一般来说,创建并使用快捷菜单,可以按照以下步骤进行:

1、用资源编辑器创建菜单。

2、当我们在窗口上按下鼠标右键,当系统处理WM_RBUTTONUP时会向我们的应用程序发送一条WM_CONTEXTMENU消息,我们通过响应这条消息来决定是否弹出菜单。

3、计算菜单弹出的位置,一般在我们鼠标指针的右下方,该坐标是基于屏幕的,不是窗口的。

4、调用TrackPopupMenu函数显示快捷菜单。

5、因为这种菜单是不属于某个窗口的,它的内存资源不会在窗口销毁时被回收,因此,在TrackPopupMenu返回后要调用DestroyMenu来销毁菜单的资源,释放内存。

创建菜单资源-并设置ID

接下来就是捕捉WM_CONTEXTMENU消息。显示菜单。

case WM_CONTEXTMENU:
    {
                           RECT rect;
                           POINT pt;
                           // 获取鼠标右击是的坐标  
                           pt.x = GET_X_LPARAM(lParam);
                           pt.y = GET_Y_LPARAM(lParam);
                           //获取客户区域大小  
                           GetClientRect((HWND)wParam, &rect);
           

本文标签: 调用 系统 编程