Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/86: Рейтинг темы: голосов - 86, средняя оценка - 4.70
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101

Работа с MFC: Как создать дочерние окна?

27.07.2011, 22:11. Показов 17941. Ответов 95
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть некоторые вопросы по этой библиотеке..... 1 Как создать дочерние окна ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.07.2011, 22:11
Ответы с готовыми решениями:

Создать страницу, с помощью которой пользователь сможет произвольно создавать и закрывать дочерние окна
Ребят, доброй ночи. Очень прошу помощи. Нужно создать скрипт, а я в этом деле тугодум, т.к. ничего не обьясняли. Спонтанно, это надо...

Работа в MFC. Обновление окна.
У меня в функции OnDraw() отрисовывается куб. По нажатию мыши нужно чтобы этот куб стирался и рисовался новый куб с другими сторонами. С...

Как создавать дочерние окна?
Вот у меня окно например форм1, нажимаю на буттон и в форм1 появляется форм2 (появление должно быть незаметным). могу привести пример,...

95
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 20:51
Студворк — интернет-сервис помощи студентам
ДинисламХХХ,Во перовых строках письма теме уже два года, мне пришлось перечитать все
во вторых
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
там выводит ошибку при записи в файл..
где ? какую?

Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
cf.Open("cfile.txt", CFile::modeReadWrite| CFile::modeNoTruncate, NULL);
* * UpdateData(TRUE);
* * s = m_edit1;
* *cf.WriteString(s);
здесь?
в чем ошибка?
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
if (!cf.Open("cfile.txt", CFile::modeRead, NULL))
* * * * cf.Open("cfile.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText, NULL);
или сдесь?
так ты сам задал
файл не открылся открыть его еще один раз
и не проверяем второй раз почему он не открылся
может файла нет?
может он занят кем то?
или ты думаешь что файл
не открылся на чтение,то его не существует ?
ну так ты ошибешься

Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
void CMyTestS::OnBnClickedButton2()
{ *
* * CStdioFile cf;
* * cf.Open("cfile.txt", CFile::modeReadWrite| CFile::modeNoTruncate, NULL);
* * UpdateData(TRUE);
* * s = m_edit1;
* *cf.WriteString(s);
* * *UpdateData(FALSE);
* cf.Close();
}
вот здесь у тебя cf локальный при выходе из функции он закроется
авот здесь?

Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
void CMyTestS::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
* * CDialog::OnActivate(nState, pWndOther, bMinimized);
* * if (!cf.Open("cfile.txt", CFile::modeRead, NULL))
* * * * cf.Open("cfile.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText, NULL);
// TODO: добавьте свой код обработчика сообщений
}
кто такой cf? член класса? глобальный?
и вот здесь он закрывается

Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
void CMyTestS::OnClose()
{
* * // TODO: добавьте свой код обработчика сообщений или вызов стандартного
*cf.Close();
* * CDialog::OnClose();
}
что за вызов CDialog::OnClose();
CDialog::OnActivate(nState, pWndOther, bMinimized);?
есть нормальный вызов родителя OnInitDialog

короче словами объясни что ты хочешь сделать?
пока я вижу при активации диалога захватываем файл, и при закрытии овобождаем
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 20:57  [ТС]
в общем запись в файл из текстбоксов... я в с++ нуб на делфи это волоку... приведи пожалуйста пример как проверить сущ. файл если да то добавить, нет создать...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 20:58
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
если не сложно пример покажи
Пример чего?
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:05  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
Пример чего?
вот как реализовать то что я описал выше..
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:07
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
вот как реализовать то что я описал выше..
я как раз и не понял что ты описал

Цитата Сообщение от ValeryS Посмотреть сообщение
короче словами объясни что ты хочешь сделать?
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:12  [ТС]
мне нужно данные из editBox записать в файл, но сначала проверить существует ли такой файл если существует то просто добавить в него записи если нет создать файл и записать.. ну а сейчас понятно?? ))
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 21:13

Не по теме:

ValeryS, да у него cf не объявлен, ну ё-моё ж


Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
CString s;
void CMyTestS::OnBnClickedButton2()
{ *
* * CStdioFile cf; - единственное объявление на весь блок причём оно только для OnBnClickedButton2
* * cf.Open("cfile.txt", CFile::modeReadWrite| CFile::modeNoTruncate, NULL);
* * UpdateData(TRUE);
* * s = m_edit1;
* *cf.WriteString(s);
* * *UpdateData(FALSE);
* cf.Close();
}
void CMyTestS::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
* * CDialog::OnActivate(nState, pWndOther, bMinimized);
* * if (!cf.Open("cfile.txt", CFile::modeRead, NULL))//где объявлен cf!!!
* * * * cf.Open("cfile.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText, NULL);
// TODO: добавьте свой код обработчика сообщений
}
void CMyTestS::OnClose()
{
* * // TODO: добавьте свой код обработчика сообщений или вызов стандартного
*cf.Close(); //где объявлен cf!!!
* * CDialog::OnClose();
}
Как можно вообще что то хотеть от кода если в нём уже 2 ошибки, даже без вдавания в подробности
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Как можно вообще что то хотеть от кода если в нём уже 2 ошибки, даже без вдавания в подробности
Юра я уже задал это вопрос
вполне возможно(хотя это глупо) что cf есть и локальная переменная и член класса
ждем когда ответит ТС
Цитата Сообщение от ValeryS Посмотреть сообщение
короче словами объясни что ты хочешь сделать?
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:21  [ТС]
а есть вариант глобально объявить эту переменную??
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:22
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
а есть вариант глобально объявить эту переменную??
есть(хотя это глупо)
ты еще раз ответь
Цитата Сообщение от ValeryS Посмотреть сообщение
короче словами объясни что ты хочешь сделать?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 21:22
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
а есть вариант глобально объявить эту переменную??
- вот именно верное решение

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
CString s;
CStdioFile cf; //вот сюда её запихни а внизу объяву в OnBnClickedButton2 убери
void CMyTestS::OnBnClickedButton2()
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:26
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вот именно верное решение
Ты щас насоветуешь
если файл открывается только в диалоге то какого художника она должна быть глобальная
понимаю так проще, но не правильно
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 21:28
Цитата Сообщение от ValeryS Посмотреть сообщение
Ты щас насоветуешь
если файл открывается только в диалоге то какого художника она должна быть глобальная
понимаю так проще, но не правильно
- всё нормально я насоветовал, чем проще тем лучше, проверку только добавить на открытость cf и открывать первый раз в режиме modeRead вот и все дела. Код писать влом, мож по свободе покажу
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:32  [ТС]
вы меня сильно то не пинайте ))
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:36
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
проверку только добавить на открытость cf
я че её проверять
открывай файл, если не открылся анализируй ошибку
или файла нет или занят
но насчет глобальности мы с тобой расходимся
я бы сделал членом класса

Добавлено через 1 минуту
ДинисламХХХ,
ты ответишь
Цитата Сообщение от ValeryS Посмотреть сообщение
короче словами объясни что ты хочешь сделать?
четвертый раз спрашиваю,потом устану
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:38  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
я че её проверять
открывай файл, если не открылся анализируй ошибку
или файла нет или занят
но насчет глобальности мы с тобой расходимся
я бы сделал членом класса

Добавлено через 1 минуту
ДинисламХХХ,
ты ответишь

четвертый раз спрашиваю,потом устану
я не знаю как еще тебе объяснить.... текст из Edit Control записать в файл... как еще понятливее??
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
22.03.2013, 21:43
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
я не знаю как еще тебе объяснить.... текст из Edit Control записать в файл... как еще понятливее??
прекрасно
когда?
нажимаем кнопку?
при закрытии диалога?
при вводе букв?
0
6 / 6 / 1
Регистрация: 29.11.2010
Сообщений: 101
22.03.2013, 21:44  [ТС]
при нажатии на кнопку ))
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 21:55
ValeryS, если честно ты меня разочаровал, ладно ДинисламХХХ, вот тебе твоё задание
Цитата Сообщение от ДинисламХХХ Посмотреть сообщение
мне нужно данные из editBox записать в файл, но сначала проверить существует ли такой файл если существует то просто добавить в него записи если нет создать файл и записать.. ну а сейчас понятно?? ))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void CCheckOpenDlg::OnOK() 
{
    // TODO: Add extra validation here
    UpdateData(true);
    CStdioFile pFile;
    if(!pFile.Open("data.txt", CFile::modeReadWrite))
        AfxMessageBox("Файл ещё не создавался");
    if(!pFile.m_pStream)
    if(!pFile.Open("data.txt", CFile::modeCreate | CFile::modeWrite))
        AfxMessageBox("Всё алес алгоритму файл и создать нельзя");
    if( pFile.m_pStream )
    {
        pFile.WriteString(m_edit1);
        pFile.Close();
        AfxMessageBox("Запись успешна!");
    }
    UpdateData(false);
    //CDialog::OnOK();
}
Миниатюры
Работа с MFC: Как создать дочерние окна?  
Вложения
Тип файла: rar CheckOpen.exe.rar (3.6 Кб, 4 просмотров)
Тип файла: rar CheckOpen_proj.rar (22.9 Кб, 4 просмотров)
2
22.03.2013, 21:57

Не по теме:

Файлик

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
"data.txt"
создаётся в каталоге с экзешником, больше дополнений нет

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2013, 21:57

Как правильно создавать дочерние окна?
Всем доброе время суток. Может кто подсказать как правильно создавать дочерние окна. Например есть окно Form1 и при нажатии на кнопку нужно...

Как создавать дочерние окна (окно в окне)
Здравствуйте! Подскажите пожалуйста, как можно в WPF создавать дочерние окна? т.е. Есть одно окно mainWindow, и по кнопке можно вызвать...

Как получить все дочерние окна процесса?
Получаю все процессы, нахожу нужный, но мне еще нужны вложенные окна типа Ebit и им подобным, полный список, как их можно получить? Через...

Как получить все дочерние окна процесса?
Получаю все процессы, нахожу нужный, но мне еще нужны вложенные окна типа Ebit и им подобным, полный список, как их можно получить? Через...

Как передать значение из родительского окна в дочерние?
var newWin = window.open('about:blank', 'example', 'width=600,height=400'); // создать div в документе нового окна var div =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru