Window消息机制_3

菜单、工具条、状态条的更新问题

MFC中上述的默认处理是:当菜单项或者工具条按钮在应用类,框架类,视图类,文档类中都没有找到响应函数时,将变成无效状态,反之有效。当时可以设置框架类CFrameWnd中的成员函数

m_bAutoMenuEnable为FALSE来使得这个默认无效。

如果要改变这些菜单项、工具条按钮以及状态条项目等的状态,能且只能在更新显示的消息中进行,否则,即使在其他地方修改了这些项目的显示状态,也将被后来的消息处理结果所覆盖。

在MFC中,通过ON_UPDATE_COMMAND_UI宏实现对界面元素显示更新的消息映射。

afx_msg void OnUploadFileNew(CCmdUI* pCmdUI);

ON_UPDATE_COMMAND_UI(ID_FILE_NEW,OnUpdateFileNew);

状态条定义:

在框架类的实现类中:static UINT indicators[]={

ID_SEPARATOR,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,可以增加自定义状态显示如:ID_INDICATOR_TIME

}

可以增加一个更新状态条的实现消息的相应函数:

afx_msg void OnUploadTime(CCmdUI * pCmdUI);

增加一个消息映射宏:

ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME,OnUpdateTime);

同时增加相应的处理函数:

void CMainFrame::OnUpdateTime(CCmdUI* pCmdUI){

}

增加定时器触动更新时间在状态显示:

SetTimer(100/* ID */,100/* 0.1s*/,NULL);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值