请大家帮助!谢谢
我在用VC++时遇到问题了!!在不用classwizard建消息处理时(即手动添加消息映射和消息处理函数时,当然是因为我要建的这个ID_INDICATOR_SHIFT不是通过定义菜单和工具栏来获得的,因此无法使用classwizard来为它的更新命令定义响应函数). (我是想改状态栏!而这个消息只能自己加)
可是却出现错误:MainFrm.obj : error LNK2001: unresolved external symbol "protected: void __thiscall CMainFrame::OnUpdateShift(class CCmdUI*)" (OnUpdateShift@CMainFrame@@IAEXPAVCCmdUI@@@Z)
这个问题以前手动加时(也是classwizard不能自动加的),就出现过!!!所以需要帮助!谢谢
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnViewDraw();
afx_msg void OnUpdateViewDraw(CCmdUI* pCmdUI);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnClose();
//}}AFX_MSG
afx_msg void OnUpdateShift(CCmdUI* pCmdUI);//我加的
DECLARE_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SHIFT,
ID_INDICATOR_CLOCK,//我加的
};
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_VIEW_DRAW, OnViewDraw)
ON_UPDATE_COMMAND_UI(ID_VIEW_DRAW, OnUpdateViewDraw)
ON_WM_TIMER()
ON_WM_CLOSE()
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SHIFT,OnUpdateShift)//我加的
END_MESSAGE_MAP()
void OnUpdateShift(CCmdUI* pCmdUI)//我加的
{
short flag=::GetKeyState(TRUE);
if(flag<0)
{
pCmdUI->Enable(TRUE);
}
else
{
pCmdUI->Enable(FALSE);
}
}