我根据书上,做一个自制风格的List框,其中用到defalt_session,
出现错误:
E:\wangqian\vc\mList\NewListCtrl.cpp(102) : error C2065: 'defalt_session' : undeclared identifier
已经检查过了,是安书上做的。
defalt_session是什么意思?有什么用处啊
出现错误:
E:\wangqian\vc\mList\NewListCtrl.cpp(102) : error C2065: 'defalt_session' : undeclared identifier
已经检查过了,是安书上做的。
defalt_session是什么意思?有什么用处啊
POSITION pos;
BOOL bSelected=FALSE; if(m_bEditing==TRUE)
goto defalt_session;
pos=GetFirstSelectedItemPosition();
if(pos)
{
LVHITTESTINFO testinfo;
testinfo.pt.x=point.x;
testinfo.pt.y=point.y;
testinfo.flags=LVHT_ONITEMLABEL;
if(SubItemHitTest(&testinfo)<0)
goto defalt_session;
m_nItem=testinfo.iItem;
m_nSubItem=testinfo.iSubItem;
while(pos)
if(m_nItem==GetNextSelectedItem(pos))
{
bSelected=true;
break;
}
if(bSelected==FALSE)
goto defalt_session;
m_bEditing=MyBeginEdit();
return;
}
defalt_session;
CListCtrl::OnLButtonDown(nFlags, point);
}BOOL CNewListCtrl::MyBeginEdit()
{
CRect rect;
if(GetSubItemRect(m_nItem,m_nSubItem,LVIR_LABEL,rect)==FALSE)
return FALSE;
int style=WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER;
if(m_edit.Create(style,rect,this,ID_MYEDIT)==FALSE)
return FALSE;
CString txtItem=GetItemText(m_nItem,m_nSubItem);
m_edit.SetWindowText(txtItem);
m_edit.SetFocus();
m_edit.SetSel(0,-1);
m_edit.ShowWindow(SW_SHOW);
return true;}void CNewListCtrl::MyEndEdit(BOOL bValidate)
{
if(bValidate)
{
CString txtItem;
m_edit.GetWindowText(txtItem);
SetItemText(m_nItem,m_nSubItem,txtItem);
} m_edit.DestroyWindow();
m_bEditing=FALSE;
}int CMyEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;
LOGFONT logfont;
logfont.lfHeight=-12;
logfont.lfWidth=0;
logfont.lfEscapement=0;
logfont.lfOrientation=0;
logfont.lfWeight=400;
logfont.lfItalic=0;
logfont.lfUnderline=0;
logfont.lfStrikeOut=0;
logfont.lfCharSet=134;
logfont.lfOutPrecision=0;
logfont.lfClipPrecision=0;
logfont.lfQuality=0;
logfont.lfPitchAndFamily=2;
strcpy(logfont.lfFaceName,"宋体");
m_font.DeleteObject();
if(m_font.CreateFontIndirect(&logfont))
SetFont(&m_font); return 0;
}void CMyEdit::OnKillFocus(CWnd* pNewWnd)
{ CNewListCtrl *parent=(CNewListCtrl*)GetParent();;
if(parent)
parent->MyEndEdit(m_bInputValid);;
m_bInputValid=TRUE;
CEdit::OnKillFocus(pNewWnd);
}BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{ if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==13)
pMsg->message=WM_KILLFOCUS;
else if(pMsg->wParam==27)
{
m_bInputValid=false;
pMsg->message=WM_KILLFOCUS;
}
}
return CEdit::PreTranslateMessage(pMsg);
}错误为:
\\彩色激光\e\wangqian\vc\mList\NewListCtrl.cpp(104) : error C2065: 'defalt_session' : undeclared identifier请指点
位置,GOTO语句的执行是这样的
语句A;
goto defalt_session;
语句B;
defalt_session: 语句C
即程序跳过B直接执行语句C.
goto defalt_session 有应该失跳转到那呢?
代码,根据资料所写,不无错误。