微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从标题栏删除图标和系统菜单

我需要从我的MFC对话框的标题栏中删除系统菜单和图标,同时保持最大化,最小化和closuresbutton。

我已经尝试使用SetIcon(NULL,TRUE),SetIcon(NULL,FALSE)希望这将删除图标。 但是,这不起作用。 该图标仍然显示有点凌乱,我认为该应用程序只是采取了主框架图标和resize。

任何人都可以帮助我这个..我使用VC ++ 2010 SP1

谢谢

寻找相当于unix脚本命令的windows

是否有可能哄std :: atomic <T>输出CMPXCHG16B

ShellExeute格式DOS命令

如何在C ++中添加库?

我的小转储越来越大,无法由Visual Studio加载,我该如何解决

包含头文件时,path是否区分大小写?

如何在空的visual c ++项目(或控制台应用程序)中使用find窗口和sendmessage,

Windows窗体devise器重命名复制/粘贴控件

为什么在VCC 2003中编译这么长时间?

用cmake安装PDB文件

标题栏图标也可以通过使用扩展样式(仅在对话框中测试,不知道它在Windows上的表现如何)从独立于最小/最大/退出按钮的位置移除。

将下面的代码粘贴到对话框的OnInitDialog()方法中,它应该可以工作:

// disable default titlebar icon int extendedStyle = getwindowlong(m_hWnd,GWL_EXSTYLE); SetwindowLong(m_hWnd,GWL_EXSTYLE,extendedStyle | WS_EX_DLGMODALFRAME); // Update non-client area of the dialog,for the changes to take effect SetwindowPos(NULL,SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);

我也没有成功地尝试过SetIcon()方法和许多其他建议的解决方案/黑客,除了上层(即扩展样式)没有工作。

编辑:

我刚刚偶然发现了一个相当于上层代码的简单方法

只需将DS_MODALFRAME与DS_MODALFRAME和WS_SYSMENU一起添加到对话框样式即可。

https://msdn.microsoft.com/en-us/library/windows/desktop/ff729172%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

在资源编辑器中,编辑对话框的属性:将“系统菜单”设置为false。 这将删除对话框的WS_SYSMENU 窗口样式 。

编辑:哎呀! 我只是重新读你的问题,并意识到你想保留最小和最大的盒子。 我的解决方案不会这样做。 这是一个不寻常的要求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐