VC++でMFCアプリ作成中です。
MFCの既存のフレームで、「最近使ったファイル」という欄があります。
これを選んだ際に、指定したプログラムでそのファイルを開きたいのですが、うまくいきません。
どうすればよろしいでしょうか?
HogeView.cpp
...(省略)
/***************************************
OnOpenRecentFileのオーバーライド
***************************************/
BOOL CWinApp::OnOpenRecentFile(UINT nID)
{
ASSERT_VALID(this);
ASSERT(m_pRecentFileList != NULL);
ASSERT(nID >= ID_FILE_MRU_FILE1);
ASSERT(nID < ID_FILE_MRU_FILE1 + (UINT)m_pRecentFileList->GetSize());
int nIndex = nID - ID_FILE_MRU_FILE1;
ASSERT((*m_pRecentFileList)[nIndex].GetLength() != 0);
/* 選んだファイルを表示 */
AfxMessageBox((*m_pRecentFileList)[nIndex]);
CHogeView *myview = new CHogeView();
★ myview->GetDocument()->SetFilePath((*m_pRecentFileList)[nIndex]);
AfxMessageBox(myview->GetDocument()->GetFilePath());
myview->ReadFile((*m_pRecentFileList)[nIndex]);
TRACE2("MRU オリジナル関数内: open file (%d) '%s'.\n", (nIndex) + 1,
(LPCTSTR)(*m_pRecentFileList)[nIndex]);
if (OpenDocumentFile((*m_pRecentFileList)[nIndex]) == NULL){
m_pRecentFileList->Remove(nIndex);
}
return TRUE;
}
/******************************************************************
ファイル読み込み
******************************************************************/
void CHogeViewerView::ReadFile(CString filename){
...(省略)
}
コンパイルはできるのですが、どうやら★のところがうまく行かず、
Debug Assertion Failed!
とエラーがでます。
何が原因なのでしょうか?