MFC 对话框的默认系统菜单取消

2025-03-05 15:11:09
推荐回答(2个)
回答1:

要保留系统菜单,又要去除双击自动关闭的功能,就拦截WM_SYSCOMMAND消息了

WM_SYSCOMMAND消息表示使用者从系统菜单中选择一个启用的菜单项:
wParam: 菜单ID
如果WM_SYSCOMMAND消息是由按鼠标按键产生的,LOWORD(lParam)和HIWORD(lParam)将包含鼠标光标位置的x和y屏幕坐标。否则lParam为 0

对于预先定义的系统菜单项,较低的那四个位应该和0xFFF0进行AND运算来屏蔽掉,结果值应该为下列之一:SC_SIZE、SC_MOVE、SC_MINIMIZE、SC_MAXIMIZE、SC_NEXTWINDOW、SC_PREVWINDOW、SC_CLOSE、SC_VSCROLL、SC_HSCROLL、SC_ARRANGE、SC_RESTORE和SC_TASKLIST。此外,wParam可以是SC_MOUSEMENU或SC_KEYMENU。

回答2:

你没仔细看向导吧,在向导的过程中,有一步就是设置窗口风格的,把那个系统 菜单勾选去掉就行了,窗口建立之后,在属性里有个SystemMenu的属性,设为False也能得到你要的效果