ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.12.2008, 00:50
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Для таких вопросов есть эта тема, не стоит создавать отдельную
|
|
|

19.12.2008, 22:13
|
|
Познающий
Регистрация: 09.06.2007
Сообщений: 68
Провел на форуме: 184133
Репутация:
18
|
|
Установил visual C++ откомпилировал, прога пашет. Закидываю на другой комп выходит сообщение, то что не находит компоненты. Советовали отключить манифест, отключил, но все-равно не пашет
|
|
|

19.12.2008, 22:32
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
И что она не находит? На чём компилировал?
|
|
|

19.12.2008, 22:36
|
|
Познающий
Регистрация: 09.06.2007
Сообщений: 68
Провел на форуме: 184133
Репутация:
18
|
|
Все Visual c++ 2008 компилировал. На другом компе запускаю пишет, не найдены компонеты и все.
Последний раз редактировалось Vorlan; 19.12.2008 в 22:39..
|
|
|

20.12.2008, 00:12
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
|
|
|
не работают полосы прокрутки. |

20.12.2008, 19:49
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
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);
}
}
}
проблема: никак не получается сделать рабочие полосы прокрутки, чтоб когда в файле большой текст, то можно было с помощью полос прокручивать и видеть все содержимое файла.
помогите пожалуйста новичку.
большое спасибо! 
|
|
|

20.12.2008, 23:07
|
|
Познающий
Регистрация: 22.03.2008
Сообщений: 63
Провел на форуме: 247838
Репутация:
65
|
|
А зачем ты текст через dc отрисовываешь? Ты же используешь стандартные компоненты, поэтому используй Editbox или его производные, какой средой пользуешься?
|
|
|

20.12.2008, 23:58
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
Сообщение от _empty
А зачем ты текст через dc отрисовываешь? Ты же используешь стандартные компоненты, поэтому используй Editbox или его производные, какой средой пользуешься?
спасибо за совет. в общем принял во внимание и вот к чему дошел:
http://www.gfs-team.ru/?act=articles&pact=122
только вот у меня это отдельное диалоговое окно в приложении, которое открывается по нажатии ОПЕН.
1) создал класс class COpenDialog : public CDialog
Код:
class COpenDialog : public CDialog
{
public:
afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
COpenDialog(CWnd* pParent = NULL);
enum { IDD = IDD_DIALOG_OPEN};
CEdit m_EditOpen;
CEdit m_bOpen;
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnStnClickedBitmap1();
};
COpenDialog::COpenDialog(CWnd* pParent)
: CDialog(COpenDialog::IDD, pParent)
{
}
void COpenDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_OPEN_PATH, m_EditOpen);
DDX_Control(pDX, IDC_OPEN_TEXT, m_bOpen);
}
BEGIN_MESSAGE_MAP(COpenDialog, CDialog)
ON_WM_PAINT()
ON_WM_SETCURSOR()
ON_STN_CLICKED(IDB_BITMAP1, &COpenDialog::OnStnClickedBitmap1)
END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////
BOOL COpenDialog:: OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
----bla bla bla
}
/////////////////////////////////////////////////////////////////////////////
void COpenDialog::OnPaint()
{
----bla bla bla
}
void COpenDialog::OnOK()
{
CString m_EditText;
// TODO: Add your control notification handler code here
CString fname; //Переменная для хранения имени файла
CFile file; //обьект класса CFile
char ch[1024]; //Буффер для чтения данных из файла
if(!OpenRead) //Если OpenRead=false то показываем диалог открытия файлов
{
CFileDialog fDialog(TRUE);
fDialog.DoModal();
m_EditOpen.SetWindowText(fDialog.GetPathName());
m_bOpen.SetWindowText("Read");
OpenRead = true;
}
else
{
m_EditOpen.GetWindowText(fname); //Получаем имя файла
if(!file.Open(fname, CFile::modeRead, NULL)) //Открываем его
{
AfxMessageBox("Cannot open file");
return;
}
file.Read(&ch, 1024); //Читаем 1024 байт
//m_EditText.SetWindowText(ch);
file.Close(); //Закрываем файл
m_bOpen.SetWindowText("Open");//Меняем текст кнопки
OpenRead = false;
}
CDialog::OnOK();
}
void COpenDialog::OnCancel()
{
CDialog::OnCancel();
}
BOOL COpenDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_EditOpen.SetWindowText(CString("файл"));
m_bOpen.SetWindowText(CString("содержимое"));
UpdateData(false);
OpenRead = false;
return TRUE;
}
и подправил функцию ОПЕН с мейнфрейма, чтоб она вызывала диалог:
Код:
void CMyFrameWin::OnOpen()
{
COpenDialog dialog;
if(dialog.DoModal()==IDOK);
}
при компиле имеем ошибку в строчке
m_EditText.SetWindowText(ch);
которую устранил пока лиш тем что закомментировал...
суть ошибки :
Код:
'SetWindowTextA' : is not a member of 'ATL::CStringT<BaseType,StringTraits>'
в чем собственно трабла у как устранить данную проблему?
среда разработки - Visual Studio 2008
Спасибо всем кто откликнется.
--------------------EDIT---------------------
Спасибо за консультацию по аське groupby
проблема была в:
"m_EditText иметт тип CString
а должен иметь тип CEdit"
--------------------EDIT---------------------
Последний раз редактировалось NetSter; 21.12.2008 в 14:18..
Причина: проблема решена. спс 2 groupby
|
|
|

21.12.2008, 22:09
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Всем привет. Проблемка тут возникла. Имеется следующий код:
Код:
if(CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 4) == INVALID_HANDLE_VALUE)
{
ShowMessage(IntToStr(GetLastError()));
}
Получаю ошибку 8: Недостаточно памяти для обработки команды.
Как решить эту проблему? С другими процессами все норм, а вот с этим нет
Последний раз редактировалось criz; 21.12.2008 в 22:16..
|
|
|

21.12.2008, 22:12
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|