gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:46:06 25 4
gpt4 key购买 nike

我需要从 MFC 对话框的标题栏中删除系统菜单和图标,同时保留最大化、最小化和关闭按钮。

我已经尝试使用 SetIcon(NULL, TRUE)、SetIcon(NULL,FALSE) 希望这会删除图标。但是,这没有用。图标仍然显示,但有点乱,我认为该应用只是采用了主框架图标并调整了它的大小。

谁能帮我解决这个问题..我正在使用 VC++ 2010 SP1

谢谢

最佳答案

标题栏图标也可以通过使用扩展样式独立从最小/最大/退出按钮中移除(仅在对话框上测试过,不知道它在 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, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);

我也没有成功尝试过 SetIcon() 方法和许多其他建议的解决方案/技巧,除了上层(即扩展样式)之外,没有一个有效。

编辑:

我刚刚偶然发现了一个更简单的等价于上面的代码:

只需将 DS_MODALFRAME 添加到对话框样式,以及 WS_CAPTIONWS_SYSMENU

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

关于windows - 从标题栏中删除图标和系统菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com