社区
Windows SDK/API
帖子详情
如何修改左上角图标的菜单?
Benjiaming
2003-06-23 12:33:19
RT
使用 GetSystemMenu、DeleteMenu 等只能修改任务栏的右键菜单
...全文
68
13
打赏
收藏
如何修改左上角图标的菜单?
RT 使用 GetSystemMenu、DeleteMenu 等只能修改任务栏的右键菜单
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Benjiaming
2003-06-23
打赏
举报
回复
To NowCan:
增加和删除菜单中的 横线 的参数是什么?
SC_LINE?
tony808
2003-06-23
打赏
举报
回复
用API吧
Benjiaming
2003-06-23
打赏
举报
回复
真是的,浪费 100 分
这样就可以了,不过不知道有没有后遗症
void __fastcall TfrmMain::FormShow(TObject *Sender)
{
HMENU SysMenu = GetSystemMenu ( this->Handle, false );
// DeleteMenu(SysMenu,SC_CLOSE,MF_BYPOSITION);
// DeleteMenu ( SysMenu, SC_RESTORE, MF_BYCOMMAND );
// DeleteMenu ( SysMenu, SC_CLOSE, MF_BYCOMMAND );
// DeleteMenu ( SysMenu, SC_MAXIMIZE, MF_BYCOMMAND );
// DeleteMenu ( SysMenu, SC_MINIMIZE, MF_BYCOMMAND );
DeleteMenu ( SysMenu, SC_MOVE, MF_BYCOMMAND ); // 移动
EnableMenuItem ( SysMenu, SC_CLOSE, MF_DISABLED| MF_GRAYED ); // 关闭
DrawMenuBar ( this->Handle );
}
yuanhen
2003-06-23
打赏
举报
回复
学习!
NowCan
2003-06-23
打赏
举报
回复
http://asp.6to23.com/nowcan/tech/sysmenu.htm
chifengwatch
2003-06-23
打赏
举报
回复
gz
NowCan
2003-06-23
打赏
举报
回复
不可能,那就是系统菜单。而且是Form->Handle上的系统菜单。任务栏上的是Application->Handle的。
qrlvls
2003-06-23
打赏
举报
回复
你可以挂一个钩子解决这个问题,我只看过VC做过的
http://www.codeproject.com上有一个NewMenu的例子可以修改系统菜单
对于 C++Builder我只是初学者而已
jishiping
2003-06-23
打赏
举报
回复
这个说的是主菜单,就是BCB里的TMainMenu这个菜单。其实你修改了主菜单下的子菜单,也
是不用调用DrawMenuBar的。只有修改了上面的那条用户直接看到的那个菜单条,才需要调用
DrawMenuBar函数。
chifengwatch
2003-06-23
打赏
举报
回复
//这样好象也可以,加一个ApplicationEvents
void __fastcall TForm1::FormCreate(TObject *Sender)
{
AppendMenu(GetSystemMenu(this->Handle, False),MF_STRING,100,"about...");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
if ( Msg.message == WM_SYSCOMMAND )
{
if ( Msg.wParam == 100 )
ShowMessage("about...");
}
Handled = false ;
}
//---------------------------------------------------------------------------
Benjiaming
2003-06-23
打赏
举报
回复
哦,我是看了 MSDN 才写 DrawMenuBar 的
Remarks
The application must call the DrawMenuBar function whenever a menu changes, whether or not the menu is in a displayed window.
jishiping
2003-06-23
打赏
举报
回复
To Benjiaming:
你上面的代码,DeleteMenu、EnableMenuItem 是可以的,没有问题。但是 DrawMenuBar
是多余的。DrawMenuBar 的是你修改了主菜单后才需要用它来重画主菜单的。
jishiping
2003-06-23
打赏
举报
回复
增加菜单中的横线
InsertMenu(hMenu, nPos, MF_BYPOSITION|MF_SEPARATOR, 0, "");
删除菜单中的横线(首先需要知道横线在菜单中的位置nPos)
RemoveMenu(hMenu, nPos, MF_BYPOSITION);
手机端左侧弹性导航
菜单
,点击
左上角
菜单
图标
,弹出
菜单
, 再次点击
菜单
隐藏
手机端左侧弹性导航
菜单
,点击
左上角
菜单
图标
,弹出
菜单
, 再次点击
菜单
隐藏。不依赖jquery。兼容主流浏览器。
改变窗体标题栏
左上角
的
菜单
,VB源代码.rar
系统
菜单
是点击窗体
左上角
图标
时所弹出的
菜单
,这个
菜单
的选项一般是固定的,而本例通过API函数的调用改变了系统
菜单
的选项,在其中加入了新的
菜单
项。程序实现有两个关键: 1、通过AppendMenu和GetSystemMenu两个API函数的应用,在系统
菜单
上添加项目; 2、通过子类化窗体技术的应用,当我们点击添加的条时,能得到消息并做出响应。 这里要仔细理解一下,我们为窗体新指定了窗体函数地址,也就是说操作系统发送给窗体的,消息将被 WindowProc函数 所截获(而改变前消息是被默认的 窗体函数 所获得并作相应处理的),这样我们在 WindowProc函数 中对所截获的消息进行判断,会有三种情况: <1>如果是需要通过程序来处理的消息就通过 WindowProc函数 中的相应语句处理; <2>如果是要原来的 窗体函数 来处理则把这个消息传递给原窗体函数(其实是指针指向的改变); <3>如果不是我们需要的消息,也传递给原 窗体函数 来处理。
解除
左上角
返回、右上角
菜单
屏蔽,集成
菜单
图标
和功能
解除
左上角
返回、右上角
菜单
屏蔽,集成
菜单
图标
和功能,转自http://blog.csdn.net/zhangzeyuaaa/article/details/40783681
解除
左上角
返回右上角
菜单
屏蔽集成
菜单
图标
和功能.zip
解除
左上角
返回右上角
菜单
屏蔽集成
菜单
图标
和功能.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
vc怎么
修改
基于单文档界面的
菜单
最上方的
图标
和文字
怎么
修改
基于单文档界面的
菜单
最上方的
图标
和文字
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章