java获得用户选中的菜单项的名称_怎样用GetMenuString获得当前选择的菜单的名称...

展开全部

AppendMenu 在指定的菜单里添加一个菜单项

CheckMenuItem 复选32313133353236313431303231363533e4b893e5b19e31333361306334或撤消复选指定的菜单条目

CheckMenuRadioItem 指定一个菜单条目被复选成“单选”项目

CreateMenu 创建新菜单

CreatePopupMenu 创建一个空的弹出式菜单

DeleteMenu 删除指定的菜单条目

DestroyMenu 删除指定的菜单

DrawMenuBar 为指定的窗口重画菜单

EnableMenuItem 允许或禁止指定的菜单条目

GetMenu 取得窗口中一个菜单的句柄

GetMenuCheckMarkDimensions 返回一个菜单复选符的大小

GetMenuContextHelpId 取得一个菜单的帮助场景ID

GetMenuDefaultItem 判断菜单中的哪个条目是默认条目

GetMenuItemCount 返回菜单中条目(菜单项)的数量

GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID

GetMenuItemInfo 取得(接收)和一个菜单条目有关的特定信息

GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息

GetMenuState 取得和指定菜单条目状态有关的信息

GetMenuString 取得指定菜单条目的字串

GetSubMenu 取得一个弹出式菜单的句柄,他位于菜单中指定的位置

GetSystemMenu 取得指定窗口的系统菜单的句柄

HiliteMenuItem 控制顶级菜单条目的加亮显示状态

InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动

InsertMenuItem 插入一个新菜单条目

IsMenu 判断指定的句柄是否为一个菜单的句柄

LoadMenu 从指定的模块或应用程式实例中载入一个菜单

LoadMenuIndirect 载入一个菜单

MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点

ModifyMenu 改动菜单条目

RemoveMenu 删除指定的菜单条目

SetMenu 设置窗口菜单

SetMenuContextHelpId 设置一个菜单的帮助场景ID

SetMenuDefaultItem 将一个菜单条目设为默认条目

SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)

SetMenuItemInfo 为一个菜单条目设置指定的信息

TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单

TrackPopupMenuEx 和TrackPopupMenu相似,只是他提供了额外的功能

在使用菜单之前,值得一提的是,包含菜单的窗口必须是POPUP-UP或OVERLAPPED风格,才可能拥有菜单。

菜单的创建有三种方法:1,在WINDOWCLASS中指定菜单资源的标识符;2,在CreateWindowEx函数参数中指定菜单句柄;3,先用LoadMenu函数

载入菜单资源,再用SetMenu函数把菜单加载到应用程序的菜单栏。

菜单的操作包含:向已存在菜单添加新的菜单项,删除菜单中的某一项,使菜单项呈现被选中状态,使菜单项无效,创建浮动式菜单,向

Windows系统菜单中添加,删除选项等等。

定位菜单项有两种途径:1,用菜单项的唯一标识符;2,用菜单项的逻辑索引。

菜单项的逻辑索引是这样规定的,菜单栏中的项从左到右的索引依次是0,1,2...,弹出菜单中的项从上到下的索引依次是0,1,2...。

如果想获得菜单某一项的句柄,因先获得菜单条的句柄,在用该菜单项的索引取得句柄。例如:

hMenu=GetMenu(hWnd); //hWnd是窗口句柄

hPopupMenu=GetSubMenu(hMenu,0); //0表示菜单的第一个选项

范例1:演示菜单的各种操作

// begin.cpp : Defines the entry point for the application.

//

#define WIN32_LEAN_AND_MEAN

#include "stdafx.h"

#include "resource.h"

#define ID_NEWITEM 1013 //定义新菜单项的标识符

#define ID_NEWSYSITEM 60441 //定义新系统菜单项标识符

LRESULT CALLBACK MainProc(HWND,UINT,WPARAM,LPARAM); //主窗口函数

BOOL WINAPI DoDispPopupMenu(HWND,int,int); //创建弹出式菜单

VOID WINAPI DoDispMessage(int); //显示相关信息

VOID WINAPI DoInsertMenuItem(void); //向已有菜单中插入新项

VOID WINAPI DoDeleteMenuItem(void); //删除菜单中的选项

VOID WINAPI DoCheckMenuItem(void); //设置菜单项为选中标志

VOID WINAPI DoCheckRadio(void); //设置菜单项为单选标志

VOID WINAPI DoInsertSysMenu(void); //向系统菜单中插入新项

char szAppName[]="Begin";

HINSTANCE hIns;

HWND hMainWnd;

BOOL isInsert; //插入菜单标志

BOOL isCheck; //选中标志

int idRadio=2; //单选标志

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{

MSG msg;

HWND hWnd;

WNDCLASSEX wc;

wc.cbClsExtra = 0;

wc.cbSize = sizeof(WNDCLASSEX);

wc.cbWndExtra = 0;

wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wc.hCursor = LoadCursor(NULL,IDC_ARROW);

wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);

wc.hIconSm = 0;

wc.hInstance = hInstance;

wc.lpfnWndProc = (WNDPROC)MainProc;

wc.lpszClassName = szAppName;

wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);

wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC;

RegisterClassEx(&wc);

hWnd=CreateWindowEx(0, szAppName, szAppName, WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

NULL,NULL,hInstance,NULL);

hMainWnd=hWnd;

hIns=hInstance;

//在此处向系统菜单中插入菜单项

DoInsertSysMenu();

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值