最近在學習孫鑫的C++教程,編程電話本的時候,在選單中顯示電話號碼,使用m_strArray記錄,GetAt()調出輸出,總共記錄4個電話號碼。代碼如下。
出現的問題:存1個、2個、4個都沒有bug,存3個的時候,再調出來就出現問題,請大家幫忙看看什么原因。



void CMenu2View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加訊息處理程式代碼和/或呼叫默認值
CClientDC dc(this);
if(0x0d==nChar)
{
if(0==++m_nIndex)
{
m_menu.CreatePopupMenu();
GetParent()->GetMenu()->AppendMenuW(MF_POPUP,(UINT)m_menu.m_hMenu,_T("PhoneBook"));
GetParent()->DrawMenuBar();//重繪視窗
}
m_menu.AppendMenuW(MF_STRING,IDM_PHONE1+m_nIndex,m_strLine.Left(m_strLine.Find(' ')));
m_strArray.Add(m_strLine);
m_strLine.Empty();
Invalidate();
}
else
{
m_strLine+=(TCHAR)nChar;
dc.TextOutW(0,0,m_strLine);
}
CView::OnChar(nChar, nRepCnt, nFlags);
}
void CMenu2View::OnPhone1()
{
// TODO: 在此添加命令處理程式代碼
CClientDC dc(this);
dc.TextOutW(0,0,m_strArray.GetAt(0));
}
void CMenu2View::OnPhone2()
{
// TODO: 在此添加命令處理程式代碼
CClientDC dc(this);
dc.TextOutW(0,0,m_strArray.GetAt(1));
}
void CMenu2View::OnPhone3()
{
// TODO: 在此添加命令處理程式代碼
CClientDC dc(this);
dc.TextOutW(0,0,m_strArray.GetAt(2));
}
void CMenu2View::OnPhone4()
{
// TODO: 在此添加命令處理程式代碼
CClientDC dc(this);
dc.TextOutW(0,0,m_strArray.GetAt(3));
}
uj5u.com熱心網友回復:
頭檔案定義錯了。抱歉。沒問題了。正確的:
#define IDM_PHONE1 201
#define IDM_PHONE2 202
#define IDM_PHONE3 203
#define IDM_PHONE4 204
錯誤的:
#define IDM_PHONE1 201
#define IDM_PHONE2 202
#define IDM_PHONE4 203
#define IDM_PHONE3 204
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
關于自己是否適合編程的很簡單的測驗:在報紙或雜志上隨便找一段約1000字的文章,在Word中輸入一遍。輸完后再參考下面答案:
A里面有10處以上文字或標點錯誤
B里面沒有文字或標點錯誤并敢為此跟人打賭
C里面沒有文字或標點錯誤并且字體和排版完全與原稿一致
D列印在半透明的紙上和原稿重疊在一起檢查一模一樣,且自我感覺很有成就感
A不適合編程(理由:打字準確度偏低、粗心大意)
B初級程式員(理由:打字準確度很高、認真細致、自信、理解全角半角概念)
C高級程式員(理由:在B的基礎上理解字體和排版也是電腦列印的重要因素、但相比D還不夠偏執、精益求精、結果可驗證)
D軟體專案經理(理由:能針對專案給出令人信服的細致到極點的需求說明和典型測驗用例。用戶幾乎挑不出毛病。專業!)
如果想從A變成B的話,到我的資源http://download.csdn.net/detail/zhao4zhong1/4084259里面下載“適合程式員的鍵盤練習”
uj5u.com熱心網友回復:
這么明顯, 就是越界了啊.你截的那個圖中, 你看是在斷言 index的合法性.
uj5u.com熱心網友回復:
m_strArray.Add(m_strLine);//用:
int GetSize( ) const;
查查 有幾個 ?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/111024.html
標籤:基礎類
上一篇:C++里的manifest清單檔案能不能由它來代替注冊表的角色,來指定COM檔案路徑、COM版本等資訊。以此法來實作擺脫注冊表的依賴,免注冊
