Здравствуйте.
подскажите где можно посмотреть:
сделать чтобы можно было редактировать рабочую область документа приложения(SDI) т.е мне нужно чтобы я мог вводить некоторый текст в стандартное окно, которое появляется при запуске приложения
я смотрел по учебнику Холзнера, но там для VC++6.0 и поэтому я смог добиться лишь появления курсора в этом окне, а с вводом\выводом текста в него проблема. ругается на pDoc->StringData += nChar;
подскажите, пожалуйста, где можно посмотреть как это делается в VC++7.0 или может кто так объяснит, ведь, наверняка, знающим людям эта элементрщина на 20 секунд
Здравствуйте, Аноним, Вы писали: А>сделать чтобы можно было редактировать рабочую область документа приложения(SDI) т.е мне нужно чтобы я мог вводить некоторый текст в стандартное окно, которое появляется при запуске приложения
А писать вообще ничего не придется, если я все правильно понял
Создай новый проект и выбери в визарде (вместо стандартного CView по умолчанию) вид CEditView.
Если тебе нужны будут бОльшие возможности (цвет, шрифт...), то тогда выбери вместо CEditView класс CRichEditView
Все, задание выполнено
Re[2]: SDI & input text?
От:
Аноним
Дата:
17.10.06 08:21
Оценка:
Здравствуйте, febus, Вы писали:
F>Создай новый проект и выбери в визарде (вместо стандартного CView по умолчанию) вид CEditView. F>Все, задание выполнено
О, да! спасибо! волшебные волшебники рулят!
теперь возникла следующая проблемка:
я делаю новый диалог, в него я могу вводить текст(Edit Control). Теперь нужно что бы этот текст при нажатии на ОК выводился в главном окне. Когда был просто класс CView я это сделал, но при использовании CEditView в нем пропал метод
virtual void OnDraw(CDC* pDC);
Ну я думал добавлю его, сделаю как при CView и будет все нормально, но нет. Все хорошо компилится но не работает, не выводится этот текст в главное окно.
Я добавлял следующий код: мой диалог
"FromDlgToWindow.срр"
ну так вот, помогите сделать что бы работало, плз.в чем ошибка?
и еще, при использовании CEditView куда записывается тот текст который мы можем вводить в главном окне?
мне нужно будет вывести этот текст в другой диалог.(обратное дейсвие вышеопсанному )
Здравствуйте, Аноним,
OnDraw тебе соверщенно тут не нужен- убери его, если не собираещься рисовать кроме текста чего нибудь необычного.
Все необходимое для вывода простого текста CEditView (точнее лежащий в его основе CEdit) умеет делать сам.
void CmylabView::OnDialog1()
{
CFromDlgToWindow t;
int result=t.DoModal();
if (t.DoModal() != IDOK)
return;
CmylabDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDoc->StringData=t.m_text;
//Invalidate();pDoc->UpdateAllViews(NULL); //обновляет содержимое всех видов, вызывает для каждого вида метод OnUpdate
}
void CmylabView::OnUpdate( CView* pSender, LPARAM lHint, CObject* pHint)
{
CmylabDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
GetEditCtrl().SetWindowText(pDoc->m_text); //GetEditCtrl() возвращает CEdit
}
Когда будешь делать обратное действие (ака вид->диалог), то вызывай
Здравствуйте, febus, Вы писали:
F>P.S. Удачной сдачи лабы
от нашего скромного общества, огромное вам спасибо!
приятно, когда находятся люди которые готовы помочь, направить на правильный путь.
вы меня направили, я поразбирался, подправил код и теперь ко мне пришло счастье!
возникает вопрос. как происходил ваш процесс обучения, больше читали полезные книги (если да, то подскажите какие)
или вы больше учились в процессе общения с людьми, которые уже стали программистами?
лично мне почти все попадавшиеся книги давали только общее представление о языке, а когда приходилось садиться за практику, то порой возникали проблемы которые с помощью книг редко можно было решить
Итого: существует ли идеальный учебник?
Здравствуйте, Аноним, Вы писали:
А>лично мне почти все попадавшиеся книги давали только общее представление о языке, а когда приходилось садиться за практику, то порой возникали проблемы которые с помощью книг редко можно было решить А>Итого: существует ли идеальный учебник?
Аноним, я не уверен, что гожусь в сэнсэи, но раз тебя интересует мое мнение...
Прежде всего, разница между 6-й и 7-й версией Visual Studio касательно MFC весьма незначительна. Так что книги по 6-й версии вполне актуальны.
Холзнера я держал в руках лет 5 назад, мне книга тогда не понравилась, уж слишком там все упрощено.
Я бы посоветовал книгу Просиза Programming Windows With MFC, но не знаю выходила ли она на русском. На мой взгляд ничего лучшего по MFC не написано.
Она также есть в электронном виде на английском, с примерами.
Второй вариант,- Круглински Хотя мне лично она нравится меньше, хотя книга охватывает практически все темы.
Она также выходила на русском и по 7-й версии. (Там есть главы по управляемому C++ для .NET)
По программированию в Windows есть классная книга "Programming Windows 2000 Unleashed" by Mickey Williams.
Это если захочется знать больше по конкретным темам системного программирования в Windows.
Аноним, прямые линки на перечисленные выше книги я здесь дать не могу, это запрещено правилами сайта(пункт 4).
Из разрешенного есть хороший сайт Первые шаги. Там много всего интересного. CodeProject. Если ты там до сих пор еще не был, обязательно посмотри.
Ну и вообще то было бы неплохо зарегистрироваться на нашем сайте
Здравствуйте, febus, Вы писали:
F>Ну и вообще то было бы неплохо зарегистрироваться на нашем сайте
да я и сам уже об этом подумал
я конечно пониматю что нельзя приставать к людям, но...
появился такой вопрос: а если мне в диалоге нужно сохранить исходное форматирование текста, введенного в главном окне?
(когда я вывожу текст из главного окна в диалог) на данный момент если я в главном окне ввожу текст в двух строках
(_текст_ENTER_текст_) то при отображении в диалоге текст будет записан в одной строке, причем вместо символа ENTERа стоят 2 квадратика. наверно есть какой нибудь параметр или манипулятор, подскажите?
Здравствуйте, AlexisVr, Вы писали:
AV>появился такой вопрос: а если мне в диалоге нужно сохранить исходное форматирование текста, введенного в главном окне? AV>(когда я вывожу текст из главного окна в диалог) на данный момент если я в главном окне ввожу текст в двух строках AV>(_текст_ENTER_текст_) то при отображении в диалоге текст будет записан в одной строке, причем вместо символа ENTERа стоят 2 квадратика. наверно есть какой нибудь параметр или манипулятор, подскажите?
эти установки соответствуют стилям ES_MULTILINE и ES_WANTRETURN соответсвенно. Это на случай если
захочешь выставлять стили из программы при помощи ModifyStyle
Здравствуйте.
Вообще то надо было создавать новую ветку по моему вопросу (напр. Dialog&imput text?) но т.к задачи в общем схожие продолжу ветку.
я создал MFS приложение — Dialog based. Добавил в главный диалог меню, Edit Control.
создал второй диалог, который так же имеет Edit Control. добавил для каждого Edit Controlа по своей Variable (m_edit и m_text1 соответственно для главного и второго диалога).
задача в общем та же: ввести текст во втором диалоге, При его закрытии текст должен вывеститсь в главном диалоге, и наоборот.