oracle 存储过程http:一个关于MFC的问题,极弱!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/08 00:56:53
我在单文档或是多文档MFC应用程序的文档类中拦截菜单项的COMMAND消息和UPDATE_COMMAND_UI消息,可以顺利实现下面这两个函数:

void CScribbleDoc::OnPenThickOrThin()
{
// Toggle the state of the pen between thin or thick.
m_bThickPen = !m_bThickPen;

// Change the current pen to reflect the new user-specified width.
ReplacePen();
}

void CScribbleDoc::OnUpdatePenThickOrThin(CCmdUI* pCmdUI)
{
// Add check mark to Draw Thick Line menu item, if the current
// pen width is "thick".
pCmdUI->SetCheck(m_bThickPen);
}
这两个函数的意图是:当你点击菜单项时,菜单项被置为checked;
如果再次点击,它将被置为unchecked.如此反复。

但我在基于对话框的MFC应用程序的对话框类中(CXXXDlg)
拦截同样的两个消息,用的也是以上两个函数,为什么
就不能实现和上面同样的功能呢?不管我怎么点击,菜单项都没有反应啊。

求高手帮帮我吧~~~~~~~小弟再拜~~~~~~~~
那个函数无关紧要,我的目的就是要在基于对话框的MFC应用程序中使用一个自己编辑的菜单,里面有一个菜单项,我点击第一次它就打勾,再点一次就取消那个勾,如此反复。

问题就是,为什么拦截消息的函数起不了应有的作用?
只要是基于对话框的MFC应用程序中,不管在哪个类中拦截都没用。

但同样的函数在SDI和MDI程序中能够实现相应的功能。

这是为什么?

看不明白你的函数是怎么实现的
ReplacePen(); 具体实现也给我看一下怎么样