
22.11.2008, 18:24
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
доброго времени суток.
нужно накодить функцию открытия и просмотра содержимого текстового файла (в отдельном окне.)
вот что уже накодил:
класс ОПЕН
Код:
class COpenWnd:public CFrameWnd
{
public:
COpenWnd(CWnd *wnd);
};
COpenWnd::COpenWnd(CWnd *wndPerent)
{
CRect rectWnd(25,25,700,500);
Create(NULL, "Opened file", WS_OVERLAPPEDWINDOW, rectWnd, wndPerent, NULL);
}
и собственно функция ОПЕН
Код:
void CMyFrameWin::OnOpen()
{
CString m_Text, path;
CFileDialog dlgOpen(TRUE, "txt","",
OFN_HIDEREADONLY, "BLOKNOT (*.txt)| *.txt| VISUAL C++ (*.cpp)| *.cpp| ALL Files(*.*)|*.*|", this);
if(dlgOpen.DoModal()==IDOK)
{
CStdioFile File(dlgOpen.GetPathName(), CFile::modeRead| CFile::typeBinary);
CString & ref=m_Text;
path=dlgOpen.GetPathName();
COpenWnd *OpenWnd=new COpenWnd(this);
OpenWnd -> ShowWindow(SW_SHOWNORMAL);
OpenWnd -> UpdateWindow();
CClientDC dc(OpenWnd);
int y=30;
CFont l_font;
l_font.CreatePointFont(150,"Lucida Console");
CFont* l_old_font = dc.SelectObject(&l_font);
dc.TextOut(10,10,path);
dc.SelectObject(l_old_font);
while (File.ReadString(ref)!=NULL)
{
CFont l_font;
l_font.CreatePointFont(150,"Lucida Console");
CFont* l_old_font = dc.SelectObject(&l_font);
dc.SetTextColor(RGB(y*10,y+19,y+50));
dc.TextOut(30,y,m_Text, strlen(m_Text)-1);
y=y+45;
dc.SelectObject(l_old_font);
}
}
}
проблемка: при открытии больших файлов большая часть текста не попадает в это окно)))
помогите привинтить к этому окну полосы прокрутки чтоб весь текст файла можно было просмотреть.
по ходу чудить нужно в классе ОПЕН но ц мну ниччего не получилось. кто что подскажет?
Большое спасибо.
|
|
|