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

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

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

Author24 — интернет-сервис помощи студентам
Вообщем есть у меня дилоговое окно, которое я создавала ручками, без конструктора. В этом окне есть менюшка(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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2014, 17:58
Ответы с готовыми решениями:

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

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

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

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

2
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
06.10.2014, 09:57 2
nedsi, а
C++
1
2
BEGIN_MESSAGE_MAP()  
END_MESSAGE_MAP()
в коде присутствует?
0
2 / 2 / 2
Регистрация: 18.09.2013
Сообщений: 65
06.10.2014, 13:49  [ТС] 3
Цитата Сообщение от Людвиг Бодмер Посмотреть сообщение
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
06.10.2014, 13:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2014, 13:49
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru