
20.12.2008, 19:49
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
С нами:
9885926
Репутация:
1188
|
|
не работают полосы прокрутки.
доброго времени суток.
очень нужно реализовать функцию открытия txt файлов и вывода содержимого файлов на экран в отдельном окне.
вот что набросал уже:
класс окна для вывода в него содержимого файла:
Код:
class COpenWnd:public CFrameWnd
{
public:
COpenWnd(CWnd *wnd);
};
COpenWnd::COpenWnd(CWnd *wndPerent)
{
CRect rectWnd(25,25,700,500);
Create(NULL, "Opened file", WS_OVERLAPPEDWINDOW | WS_HSCROLL |WS_VSCROLL , 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);
}
}
}
проблема: никак не получается сделать рабочие полосы прокрутки, чтоб когда в файле большой текст, то можно было с помощью полос прокручивать и видеть все содержимое файла.
помогите пожалуйста новичку.
большое спасибо! 
|
|
|