1、HMENU WINAPI GetSystemMenu( _In_ HWND hWnd, _In_ BOOL bRevert)参数:bRevert,TRUE–恢复到默认的系统菜单(将删除所有自己定义的系统菜单项),FALSE–获取当前的系统菜单。
2、BOOL WINAPI AppendMenuW( HMENU hMenu, UINT uFlags, UIN皈其拄攥T_PTR uIDNewItem, LPCWSTR lpNewItem)参数:uFlags,标志,常用的MF_STRING(字符串),MF_SEPARATOR(分割线uIDNewItem,菜单ID,lpNewItem,菜单名字。
3、删除系统菜单BOOL WINAPI DeleteMenu( HMENU hMenu, UINT uPosition, UINT uFlags)参数:uPosition,菜单ID或者菜单position Index,uFlags,删除标志: MF_BYPOSITION —通过索引删除,MF_BYCOMMAND–通过菜单id方式删除
4、获取菜单总Int WINAPI GetMenuItemCount(HMENU hMenu); 注意,分隔符也会作为菜单项的。弹出菜单是不是直接在任务栏上点击右键,而是先把鼠标移动到应用程序图标上面,这时系统会弹出一个应用程序预览图,然后在这个预览图上面点击右键,就会弹出如上图所示的系统菜单。
5、获取position Index位置的菜单项IUINT WINAPI GetMenuItemID( HMENU hMenu, int nPos)一般情况下,分隔符菜单的ID设置为0。
6、系统菜单的消息处理WM_SYSCOMMAN系统菜单点击以后产生的消息是WM_SYSCOMMAND,wParam中存放的是菜单ID。