-1
我認爲之前OnUpdate()
函數調用OnInitialUpdate()
功能,但是當我打開該文檔,OnInitialUpdate()
稱爲第一但這CView::OnInitialUpdate();
後調用OnUpdate()
。因此,它不能去執行OnUpdate()
功能之前,下一步在這之後CView::OnInitialUpdate();
進一步。的OnUpdate()之前的OnInitialUpdate()調用
void PinNameView::OnInitialUpdate()
{
CView::OnInitialUpdate();
pInputData = pOutputData = NULL;
//...
}
void PinNameView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
//...
this->Invalidate(false);
}
我面前OnUpdate()
, 的變量pInputData
和pOutputData
設置爲NULL
但它設置爲NULL
後OnUpdate()
這PinNameView
類是從CView
類派生的。
我想知道爲什麼它首先叫的原因。
這個問題並沒有太大的意義。答案是無用的,因爲它很明顯:代碼的行爲方式是因爲它是這樣寫的。 – IInspectable
@IInspectable對不起,我犯了一個大錯誤!我想知道爲什麼pInputData的OnUpdate()不是的CView :: OnInitialUpdate中(),我以前說過後設置爲NULL。代碼CView :: OnInitialUpdate();上面是在函數的第一行,MFC推薦我們在CView :: OnInitialUpdate()下鍵入代碼。但我認爲OnInitialUpdate()的函數可能會初始化變量,現在我很好奇它爲什麼會在函數OnInitialUpdate()中使用OnUpdate()函數,我猜應該這樣做完成OnInitialUpdate()? – Sean
這個解釋並沒有使事情變得更清楚。你說的是假設,那是錯誤的,然後問,爲什麼你結束了假設無法解釋的行爲。請給自己一份Jeff Prosise'[使用MFC編程Windows](http://www.amazon.com/dp/1572316950)。 – IInspectable