本文共计8523个文字,预计阅读时间需要28分15秒,欢迎阅读借鉴、一起学习、进步,内容来自小编精心整理收集,如有不正确和疑问,欢迎指正。
mfc怎样设置弹出菜单的权限enablemenuitem
两种方法,直接在这个菜单上进行类向导操作:1.对这个菜单进行update_command_ui,然后enable这个菜单就可以了
2.增加命令响应操作,也就是command,然后enablewindow或者enablemenuitem
delphi下拉菜单(mainmenu)字体怎么设置?
之前有看到人这样说 ,但是我的字体名字不管怎么换都不变,试过了隶书,微软雅黑等等!!!窗体上放一MainMenu1,包含的菜单项为MenuItem1,MenuItem2...
设置为MainMenu的OwnerDraw为True,
MenuItem1的OnDrawItem事件:
procedure TForm1.MenuItem1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=20; //设置为足够大的字号
ACanvas.Font.Name:= 'Times New Roman '; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption);
end;
MenuItem1的OnMeasureItem事件:
procedure TForm1.MenuItem1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Height:=40; //设置为足够高以容纳你的菜单项
Width:=200; //设置为足够宽以容纳你的菜单项
end;
将其他菜单项的OnDrawItem设置为MenuItem1DrawItem
OnMeasureItem设置为MenuItem1DrawItem
将菜单的的OwnerDraw为True
然后自定义重绘事件,就可以了,代码如下:
12345678910111213141516procedure
TForm1
.
N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected:
Boolean
);
begin
ACanvas
.
FillRect(ARect);
ACanvas
.
Font
.
Size:=
15
;
//设置为足够大的字号
ACanvas
.
Font
.
Name:=
'仿宋'
;
//设置为你喜欢的字体
//输出菜单项
ACanvas
.
TextOut(ARect
.
Left,ARect
.
Top,(Sender
as
TMenuItem).Caption);
end
;
procedure
TForm1
.
N1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var
Width, Height:
Integer
);
begin
Height:=
40
;
//设置为足够高以容纳你的菜单项
Width:=
200
;
//设置为足够宽以容纳你的菜单项
end
;
把要重绘的菜单项的事件指以上事件即可,效果如下:
右键弹出菜单相同
下面分享相关内容的知识扩展:
如何在ASP.NET中使用menu控件实现编程
我有一个ASP.NET程序,使用了menu控件,是关于单据管理的,下面有三个子菜单:采购单、进货单、退货单。同时我设了三个panel,分别用来编辑这三个内容。现在我想我选中了一个单据以后,只显示对应的那个panel,而其他两个则隐藏(这三个panel在一个页面上),比如我在三个子菜单选择了进货单,则对应的panel可以显示,而其他两个则隐藏。请哪位高手告诉我怎样能够实现。万分感谢!下列出了由 Menu 类型公开的成员。
公共构造函数
名称 说明
Menu 初始化 Menu 类的新实例。
页首
公共字段
名称 说明
MenuItemClickCommandName 包含命令名。
页首
公共属性 (请参见 受保护的属性 )
名称 说明
AccessKey 获取或设置使您得以快速导航到 Web 服务器控件的访问键。(从 WebControl 继承。)
AppRelativeTemplateSourceDirectory 获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。(从 Control 继承。)
Attributes 获取与控件的属性不对应的任意特性(只用于呈现)的集合。(从 WebControl 继承。)
BackColor 获取或设置 Web 服务器控件的背景色。(从 WebControl 继承。)
BindingContainer 获取包含该控件的数据绑定的控件。(从 Control 继承。)
BorderColor 获取或设置 Web 控件的边框颜色。(从 WebControl 继承。)
BorderStyle 获取或设置 Web 服务器控件的边框样式。(从 WebControl 继承。)
BorderWidth 获取或设置 Web 服务器控件的边框宽度。(从 WebControl 继承。)
ClientID 获取由 ASP.NET 生成的服务器控件标识符。(从 Control 继承。)
Controls 已重写。获取 ControlCollection,其中包含 Menu 控件的子控件。
ControlStyle 获取 Web 服务器控件的样式。此属性主要由控件开发人员使用。(从 WebControl 继承。)
ControlStyleCreated 获取一个值,该值指示是否已为 ControlStyle 属性创建了 Style 对象。此属性主要由控件开发人员使用。(从 WebControl 继承。)
CssClass 获取或设置由 Web 服务器控件在客户端呈现的级联样式表 (CSS) 类。(从 WebControl 继承。)
DataBindings 获取 MenuItemBinding 对象的集合,这些对象定义数据项和它所绑定到的菜单项之间的关系。
DataSource 获取或设置对象,数据绑定控件从该对象中检索其数据项列表。(从 BaseDataBoundControl 继承。)
DataSourceID (从 HierarchicalDataBoundControl 继承。)
DisappearAfter 获取或设置鼠标指针不再置于菜单上后显示动态菜单的持续时间。
DynamicBottomSeparatorImageUrl 获取或设置图像的 URL,该图像显示在各动态菜单项底部,将动态菜单项与其他菜单项隔开。
DynamicEnableDefaultPopOutImage 获取或设置一个值,该值指示是否显示内置图像,其中内置图像指示动态菜单项具有子菜单。
DynamicHorizontalOffset 获取或设置动态菜单相对于其父菜单项的水平移动像素数。
DynamicHoverStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置鼠标指针置于动态菜单项上时的菜单项外观。
DynamicItemFormatString 获取或设置与所有动态显示的菜单项一起显示的附加文本。
DynamicItemTemplate 获取或设置包含动态菜单自定义呈现内容的模板。
DynamicMenuItemStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置动态菜单中的菜单项的外观。
DynamicMenuStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置动态菜单的外观。
DynamicPopOutImageTextFormatString 获取或设置用于指示动态菜单项包含子菜单的图像的替换文字。
DynamicPopOutImageUrl 获取或设置自定义图像的 URL,如果动态菜单项包含子菜单,该图像则显示在动态菜单项中。
DynamicSelectedStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置用户所选动态菜单项的外观。
DynamicTopSeparatorImageUrl 获取或设置图像的 URL,该图像显示在各动态菜单项顶部,将动态菜单项与其他菜单项隔开。
DynamicVerticalOffset 获取或设置动态菜单相对于其父菜单项的垂直移动像素数。
Enabled 获取或设置一个值,该值指示是否启用 Web 服务器控件。(从 WebControl 继承。)
EnableTheming 获取或设置一个值,该值指示是否对此控件应用主题。(从 WebControl 继承。)
EnableViewState 获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。(从 Control 继承。)
Font 获取与 Web 服务器控件关联的字体属性。(从 WebControl 继承。)
ForeColor 获取或设置 Web 服务器控件的前景色(通常是文本颜色)。(从 WebControl 继承。)
HasAttributes 获取一个值,该值指示控件是否具有属性集。(从 WebControl 继承。)
Height 获取或设置 Web 服务器控件的高度。(从 WebControl 继承。)
ID 获取或设置分配给服务器控件的编程标识符。(从 Control 继承。)
Items 获取 MenuItemCollection 对象,该对象包含 Menu 控件中的所有菜单项。
ItemWrap 获取或设置一个值,该值指示菜单项的文本是否换行。
LevelMenuItemStyles 获取 MenuItemStyleCollection 对象,该对象包含的样式设置是根据菜单项在 Menu 控件中的级别应用于菜单项的。
LevelSelectedStyles 获取 MenuItemStyleCollection 对象,该对象包含的样式设置是根据所选菜单项在 Menu 控件中的级别应用于该菜单项的。
LevelSubMenuStyles 获取 MenuItemStyleCollection 对象,该对象包含的样式设置是根据静态菜单的子菜单项在 Menu 控件中的级别应用于这些子菜单项的。
MaximumDynamicDisplayLevels 获取或设置动态菜单的菜单呈现级别数。
NamingContainer 获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 Control.ID 属性值的服务器控件。(从 Control 继承。)
Orientation 获取或设置 Menu 控件的呈现方向。
Page 获取对包含服务器控件的 Page 实例的引用。(从 Control 继承。)
Parent 获取对页 UI 层次结构中服务器控件的父控件的引用。(从 Control 继承。)
PathSeparator 获取或设置用于分隔 Menu 控件的菜单项路径的字符。
ScrollDownImageUrl 获取或设置动态菜单中显示的图像的 URL,以指示用户可以向下滚动查看更多菜单项。
ScrollDownText 获取或设置 ScrollDownImageUrl 属性中指定的图像的替换文字。
ScrollUpImageUrl 获取或设置动态菜单中显示的图像的 URL,以指示用户可以向上滚动查看更多菜单项。
ScrollUpText 获取或设置 ScrollUpImageUrl 属性中指定的图像的替换文字。
SelectedItem 获取选定的菜单项。
SelectedValue 获取选定菜单项的值。
Site 获取容器信息,该容器在呈现于设计图面上时承载当前控件。(从 Control 继承。)
SkinID 获取或设置要应用于控件的外观。(从 WebControl 继承。)
SkipLinkText 获取或设置屏幕读取器所读取的隐藏图像的替换文字,以提供跳过链接列表的功能。
StaticBottomSeparatorImageUrl 获取或设置图像的 URL,该图像在各静态菜单项底部显示为分隔符。
StaticDisplayLevels 获取或设置静态菜单的菜单显示级别数。
StaticEnableDefaultPopOutImage 获取或设置一个值,该值指示是否显示内置图像,其中内置图像指示静态菜单项包含子菜单。
StaticHoverStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置鼠标指针置于静态菜单项上时的菜单项外观。
StaticItemFormatString 获取或设置与所有静态显示的菜单项一起显示的附加文本。
StaticItemTemplate 获取或设置包含静态菜单自定义呈现内容的模板。
StaticMenuItemStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置静态菜单中的菜单项的外观。
StaticMenuStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置静态菜单的外观。
StaticPopOutImageTextFormatString 获取或设置用于指示静态菜单项包含子菜单的弹出图像的替换文字。
StaticPopOutImageUrl 获取或设置显示来指示静态菜单项包含子菜单的图像的 URL。
StaticSelectedStyle 获取对 MenuItemStyle 对象的引用,使用该对象可以设置用户在静态菜单中选择的菜单项的外观。
StaticSubMenuIndent 获取或设置静态菜单中子菜单的缩进间距(以像素为单位)。
StaticTopSeparatorImageUrl 获取或设置图像的 URL,该图像在各静态菜单项顶部显示为分隔符。
Style 获取将在 Web 服务器控件的外部标记上呈现为样式属性的文本属性的集合。(从 WebControl 继承。)
TabIndex 获取或设置 Web 服务器控件的选项卡索引。(从 WebControl 继承。)
Target 获取或设置用来显示菜单项的关联网页内容的目标窗口或框架。
TemplateControl 获取或设置对包含该控件的模板的引用。 (从 Control 继承。)
TemplateSourceDirectory 获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。(从 Control 继承。)
ToolTip 获取或设置当鼠标指针悬停在 Web 服务器控件上时显示的文本。(从 WebControl 继承。)
UniqueID 获取服务器控件的唯一的、以分层形式限定的标识符。(从 Control 继承。)
Visible 获取或设置一个值,该值指示服务器控件是否作为 UI 呈现在页上。(从 Control 继承。)
Width 获取或设置 Web 服务器控件的宽度。(从 WebControl 继承。)
VC 中menu怎样由灰变黑?
我是用VC6.0的,建了个菜单,下拉中有好几个的例如有:
ID_VIEW_TOOLBAR
ID_VIEW_STATUS_BAR
ID_WINDOW_SPLIT
我想实现:程序在刚开始运行时,第一个是灰的,等到我一个loin()函数通过了之后,第一个再变成黑的,改怎样实现呢?
使用这个函数,至于在什么地方写,按要求来做,比如开始时候就调用,在初始化函数你写
CMenu::EnableMenuItem
UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );
返回值:
返回以前的状态(MF_DISABLED, MF_ENABLED, 或MF_GRAYED),如果无效,则返回-1。
参数: nIDEnableItem 指定由nEnable决定的将要有效的菜单项。该参数既可以指定弹出菜单项,也可以指定标准菜单项。
nEnable 指定了将要进行的动作。它可以是MF_DISABLED, MF_ENABLED,或MF_GRAYED与 MF_BYCOMMAND或MF_BYPOSITION的组合。这些值通过位与操作进行组合。这些值有下列含义: · MF_BYCOMMAND 指定参数给出已存在的菜单项的命令ID号。此为缺省值。
· MF_BYPOSITION 指定参数给出已存在菜单项的位置。第一项所在的位置是0。
· MF_DISABLED 使菜单项无效,以便它不能被选择,但不变灰。
· MF_ENABLED 使菜单项有效,以便它能够被选择,并可从变灰的状态中恢复出来。
· MF_GRAYED 使菜单项无效,以便它不能被选择并同时变灰。
说明:
使菜单项有效、无效或变灰。CreateMenu,InsertMenu,ModifyMenu和LoadMenuIndirect成员函数同时也设置菜单项的状态(有效、无效、或变灰)。
使用MF_BYPOSITION的值需要应用恰当的CMenu对象。若菜单条的CMenu被使用,那么顶层菜单项(菜单条中的某项)将受影响。如果为了在弹出菜单或嵌套的弹出菜单中通过位置来设置项的状态,那么应用必须指定弹出菜单的CMenu。
当应用指定了MF_BYCOMMAND标志,那么Windows将检测所有的属于CMenu的弹出菜单项。因此,除非当前正在复制菜单项,那么使用菜单条的CMenu是非常有效的。
在android中写了一个menu,但是点击之后没有反应,求教了!
menu部分代码如下:protected static final int MENU_COMMENT = Menu.FIRST;
protected static final int MENU_COLLECTION = Menu.FIRST+1;
protected static final int MENU_SEARCH= Menu.FIRST+2;
protected static final int MENU_ABOUT = Menu.FIRST+3;
protected static final int MENU_QUIT= Menu.FIRST+4;
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(2,MENU_COMMENT,0,"书评");
menu.add(2,MENU_COLLECTION,0,"我读");
menu.add(2,MENU_SEARCH,0,"搜书");
menu.add(2,MENU_ABOUT,0,"关于");
menu.add(2,MENU_QUIT,0,"退出");
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemMenu(MenuItem item){
//super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case MENU_COMMENT:
actionClickMenuItem1();
case MENU_COLLECTION:
actionClickMenuItem2();
case MENU_SEARCH:
actionClickMenuItem3();
case MENU_ABOUT:
openOptionsDialog();
break;
case MENU_QUIT:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
private void actionClickMenuItem3(){
// TODO Auto-generated method stub
setTitle("搜书");
//Intent intent1 = new Intent(ActivityMain.this, ActivitySearch.class);
//startActivity(intent1);
Intent intent = new Intent();
intent.setClass(ActivityMain.this, ActivitySearch.class);
startActivity(intent);
}
private void actionClickMenuItem2() {
// TODO Auto-generated method stub
setTitle("我读");
Intent intent1 = new Intent(ActivityMain.this, ActivityCollection.class);
startActivity(intent1);
}
private void actionClickMenuItem1() {
// TODO Auto-generated method stub
setTitle("书评");
Intent intent1 = new Intent(ActivityMain.this, ActivityCommentList.class);
startActivity(intent1);
}
private void openOptionsDialog() {
// TODO Auto-generated method stub
new AlertDialog.Builder(this)
.setTitle(R.string.app_about)
.setMessage(R.string.app_about_msg)
.setPositiveButton(R.string.str_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
onOptionsItemMenu这个函数里面的case语句有错,下面是我下的一段代码,你看一下,应该知道你那个是什么错误了。
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case 1:
sign = 1;
provinces=new String[]{"工具","关于","退出"};
showSingleChoiceDialog();
return true ;
case 2:
sign = 2;
provincesstep=new String[]{"选择提示音","退出"};
showSingleChoiceDialogStep();
return true;
case 3:
notificationManager.cancel(R.drawable.icon);
System.exit(0);
return true;
}
return false;
}
注意里面的return语句。