mfc_sdi_2 - 8BitsCoding/RobotMentor GitHub Wiki

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ


ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ์ €์žฅํ• ๋•Œ ๋ชจ๋“  ํŒŒ์ผ์ด ์•„๋‹Œ ํŠน์ •ํŒŒ์ผ๋งŒ ์—ด๊ณ  ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

๋ฆฌ์†Œ์Šค๋ทฐ -> ์ŠคํŠธ๋ง ํ…Œ์ด๋ธ”๋กœ ์ด๋™

IDR_MAINFRAME์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค.

MFCApplication6\n\nMFCApplication6\nํ…์ŠคํŠธ ํŒŒ์ผ(*.txt)\n.txt\nMFCApplication6.Document\nMFCApplication6.Document

\n\n\n๋ฅผ

\nํ…์ŠคํŠธ ํŒŒ์ผ(*.*)\n.txt\n๋กœ ์ˆ˜์ •


์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ(Ctrl+N)๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜ ์ฒ˜๋ฆฌ

BOOL CMFCApplication6Doc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;
	if (!m_viewList.IsEmpty())
	{
		reinterpret_cast<CEditView*>(m_viewList.GetHead())->SetWindowText(nullptr);
	}

	// TODO: ์—ฌ๊ธฐ์— ์žฌ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
	// SDI ๋ฌธ์„œ๋Š” ์ด ๋ฌธ์„œ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

	return TRUE;
}

m_viewList๊ฐ€ View๋ฅผ ์˜๋ฏธํ•˜๊ณ  Head์ •๋ณด๋ฅผ ๋ฐ›์•„์™€์„œ(.GetHead()) ์œˆ๋„์šฐ์˜ ํ…์ŠคํŠธ๋ฅผ ๋น„์šด๋‹ค.(SetWindowText(nullptr))


์ €์žฅ์ด๋‚˜ ์—ด๊ธฐ ํ•จ์ˆ˜ ์ฒ˜๋ฆฌ

void CMFCApplication6Doc::Serialize(CArchive& ar)
{
	// CEditView์—๋Š” ๋ชจ๋“  serialization์„ ์ฒ˜๋ฆฌํ•˜๋Š” edit ์ปจํŠธ๋กค์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
	if (!m_viewList.IsEmpty())
	{
		reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);
	}
#ifdef SHARED_HANDLERS

	if (m_viewList.IsEmpty() && ar.IsLoading())
	{
		CFile* pFile = ar.GetFile();
		pFile->Seek(0, FILE_BEGIN);
		ULONGLONG nFileSizeBytes = pFile->GetLength();
		ULONGLONG nFileSizeChars = nFileSizeBytes/sizeof(TCHAR);
		LPTSTR lpszText = (LPTSTR)malloc(((size_t)nFileSizeChars + 1) * sizeof(TCHAR));
		if (lpszText != nullptr)
		{
			ar.Read(lpszText, (UINT)nFileSizeBytes);
			lpszText[nFileSizeChars] = '\0';
			m_strThumbnailContent = lpszText;
			m_strSearchContent = lpszText;
		}
	}
#endif
}

View ์œˆ๋„์šฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ธฐ ์ „ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋Š”? (OnInitDialog)

BOOL CMFCApplication6View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: CREATESTRUCT cs๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์—ฌ๊ธฐ์—์„œ
	//  Window ํด๋ž˜์Šค ๋˜๋Š” ์Šคํƒ€์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

	BOOL bPreCreated = CEditView::PreCreateWindow(cs);
	cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);	// ์ž๋™ ์ค„๋ฐ”๊ฟˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

	return bPreCreated;
}

๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

void CMFCApplication6View::OnRButtonUp(UINT /* nFlags */, CPoint point)
{
	ClientToScreen(&point);
	OnContextMenu(this, point);
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ