Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
2 / 2 / 2
Регистрация: 18.09.2013
Сообщений: 65

Как связать диалог IDD с обьектом mfc?

05.10.2014, 17:58. Показов 1741. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем есть у меня дилоговое окно, которое я создавала ручками, без конструктора. В этом окне есть менюшка(open file), при нажатии я открываю диалоговое окно - выбираю файл и типо считываю его куда-то.
Вопрос 1:
я создал диалог с IDD_DIALOG2, как его сделать visible=true вот тут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void CMyFrameWnd::OnFile_Open()
{
     TCHAR szFilters[]= _T("MyType Files (*.txt)|*.my|All Files (*.*)|*.*||");
     
   // Create an Open dialog; the default file name extension is ".my".
   CFileDialog fileDlg(TRUE, _T("txt"), _T("*.txt"),
       OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
 
   // Display the file dialog. When user clicks OK, fileDlg.DoModal() 
   // returns IDOK.
   if(fileDlg.DoModal() == IDOK)
   {
      //вот прям тут я хочу его сделать видимым. Я в mfc новичек, тут другая планета :3
      CString pathName = fileDlg.GetPathName();
      CString fileName = fileDlg.GetFileTitle();
      CString s;
      SetWindowText(fileName);
   }
    
}
Вопрос 2:
куда лучше считывать файл? CEdit,StaticText...?

Добавлено через 1 час 54 минуты
С диалогом разобрался.

Добавлено через 24 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void CMyFrameWnd::OnFile_Open()
{
     TCHAR szFilters[]= _T("MyType Files (*.txt)|*.my|All Files (*.*)|*.*||");
     
   // Create an Open dialog; the default file name extension is ".my".
   CFileDialog fileDlg(TRUE, _T("txt"), _T("*.txt"),
      OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
 
   // Display the file dialog. When user clicks OK, fileDlg.DoModal() 
   // returns IDOK.
   if(fileDlg.DoModal() == IDOK)
   {
      CString pathName = fileDlg.GetPathName();
      CStdioFile fOpen(pathName, CFile::modeRead);
      CC mydlg;
      mydlg.DoModal();
      char buff[10];
      CString s;
      CEdit *MyEdit;
      MyEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
      MyEdit->Clear();
      while (fOpen.ReadString(s)) s+=buff;
      MyEdit->SetWindowTextA(s);
      // Implement opening and reading file in here.
      UpdateData(false);
      fOpen.Close();
      //Change the window's title to the opened file's title.
      CString fileName = fileDlg.GetFileTitle();
 
      SetWindowText(fileName);
   }
    //::MessageBox(NULL,"C", "File Open", MB_OK|MB_ICONEXCLAMATION);
}
Не получаеться считать файл, почему?
Ошибка 2 error LNK1120: неразрешенных внешних элементов: 1 E:\CPP_Projects\lab5\Debug\lab_2.exe 1 1 lab_2
Ошибка 1 error LNK2001: неразрешенный внешний символ ""protected: virtual struct AFX_MSGMAP const * __thiscall CC::GetMessageMap(void)const " (?GetMessageMap@CC@@MBEPBUAFX_MSGMAP@@XZ )" E:\CPP_Projects\lab5\chapter1.obj lab_2
C++
1
2
3
4
5
6
7
8
9
10
11
12
class CC: public CDialog
{
public:
    CC(CWnd* pParent = NULL);
    enum {IDD  = IDD_DIALOG2};
    DECLARE_MESSAGE_MAP()
    afx_msg void OnEnChangeEdit1();
};
CC::CC(CWnd* pParent):CDialog(CC::IDD, pParent)
{
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2014, 17:58
Ответы с готовыми решениями:

Visual C++ (MFC - простой диалог) ComboBox как програмно выбрать нужную строку?
Visual C++ (MFC - простой диалог) ComboBox как програмно выбрать нужную строку?

MFC, диалог, перерисовка...
Всем доброго времени суток! Имеем следующее: приложение на МФС, по кнопке меню открываем модальный диалог, ставим в эдите кол-во рисуемых...

MFC модальный диалог
Здравствуйте. Собственно, такая проблема возникла - MFC приложение, диалоговое, есть главный диалог, есть второй диалог, их классы,...

2
 Аватар для Людвиг Бодмер
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
06.10.2014, 09:57
nedsi, а
C++
1
2
BEGIN_MESSAGE_MAP()  
END_MESSAGE_MAP()
в коде присутствует?
0
2 / 2 / 2
Регистрация: 18.09.2013
Сообщений: 65
06.10.2014, 13:49  [ТС]
Цитата Сообщение от Людвиг Бодмер Посмотреть сообщение
nedsi, а
Код C++
1
2
BEGIN_MESSAGE_MAP() *
END_MESSAGE_MAP()
в коде присутствует?
С этим я тоже разобрался вчера, уже так сказать финишная прямая) Не могу считать файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(fileDlg.DoModal() == IDOK)
   {
      CC mydlg;
      mydlg.DoModal();
      FILE* out;
      CString pathName = fileDlg.GetPathName();
      out=fopen(pathName,"r");
      char buff[10];
      CString str;
      CEdit *MyEdit;
      MyEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
      MyEdit->Clear();
      while (fgets(buff,10,out)) str+=buff;
      MyEdit->SetWindowTextA(str);
      CString fileName = fileDlg.GetFileTitle();
      SetWindowText(fileName);
      
   }
Вылетает прога, когда закрываю окно с большим едитбоксом, куда я хочу считывать инфу(там ничего не отображается).
Значит как закрываю, все останавливается, вылетает окно с "Необработанное сообщение по адресу (mfc110d.dll). Нарушение прав доступа прич чтении по адресу.." и в гланом окне показывает файл afxwin2.inl и курсор на строке
C++
1
{ ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CLEAR, 0, 0); }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2014, 13:49
Помогаю со студенческими работами здесь

Немодальный диалог не отображается (MFC)
Добрый день. Программирую при помощи MFC, хочу сделать чтобы при нажатии на ЛКМ появлялся немодальный диалог. Я чувствую что он...

Диалог в стиле MFC на WinAPI
Windows 7. Создаю диалог по шаблону с помощью DialogBoxIndirect. Шаблон - массив байт, выдран из exe-шника использующего MFC. Диалог...

Базовые понятия-класс. Как он сотносится с обьектом?
Обьясните также пожалуста, что значит error C2864: miclasse::AA: в пределах класса могут быть инициализированы только статические...

Как сделать простейшую систему управления обьектом на форме
Я делаю игру в котором летит вертолет(в 2d), но летает он у меня только по заданным параметрам( void __fastcall TForm1::Timer1Timer(TObject...

Узнать IDD формы по hWnd
Возможно ли как-то узнать IDD формы (тот, который указывается в MAKEINTRESOURCE()) по hWnd? Если так нельзя, то может существует...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru