如何让MDI子窗口右上角的X变灰。

brownbull 2004-04-01 06:46:10
要求:
1.不想在PreCreateWindow里设置窗口风格
2.设成灰之后又能在程序的某一个地方恢复成原先能用的状态(不想用GetSysMenu(TRUE)的方法);



解决问题立即给分,绝不食言!!!!!!
...全文
91 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
brownbull 2004-04-01
  • 打赏
  • 举报
回复
自己顶一下
brownbull 2004-04-01
  • 打赏
  • 举报
回复
To:szclm(IT的民工)
用你的方法后,我用:
CMenu *pMainMenu = GetSystemMenu(FALSE);
pMainMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_ENABLED);
恢复不了X的可用状态,不知各位大侠是否遇到过。
brownbull 2004-04-01
  • 打赏
  • 举报
回复
GetSystemMenu(FALSE)可以用,因为GetSystemMenu(TRUE)是把系统菜单设置成默认状态,当子窗口最大化时,会和主窗口的X合为一起。
_foo 2004-04-01
  • 打赏
  • 举报
回复
如果硬是要达到目的,你可以在wm_close(OnClose)中直接返回而不调用基类.
然后在wm_ncpaint中重绘标题栏,把那个按钮画成灰的.

不过我想不出不用GetSystemMenu的原因,除非你是想在这里试试大家的能力.
szclm 2004-04-01
  • 打赏
  • 举报
回复
我用False行吗?
:)

CMenu *pMainMenu = GetSystemMenu(FALSE);
pMainMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
szclm 2004-04-01
  • 打赏
  • 举报
回复
CMenu *pMainMenu = GetSystemMenu();
pMainMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
_foo 2004-04-01
  • 打赏
  • 举报
回复
能不能说说不想用GetSystemMenu的原因??
101monster 2004-04-01
  • 打赏
  • 举报
回复
呵呵,UP!

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧