| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как внедрить медод Класса в МФС? |
| Автор: Sasha1 10.5.2006, 18:59 |
| есть класс Complex .cpp Complex Use; . . . . . void Complex::Vivod() { this->SetDlgItemText(IDC_EDIT1,str5); this->SetDlgItemText(IDC_EDIT2,str6); } void CProjectDlg::OnBnClickedButton8() { str1="1.2"; str2="1.2"; str5="1.2"; str6="1.2"; p_Edit7.GetWindowText(str1); p_Edit8.GetWindowText(str2); double im = atof (str1); double re = atof (str2); str5.Format ("%lg", im); str6.Format ("%lg", re); Use.Vivod(); //this->SetDlgItemText(IDC_EDIT1,str5); //this->SetDlgItemText(IDC_EDIT2,str6); } .h class Complex : public CDialog { public: CString Str; CString str1 ; CString str2 ; CString str3 ; CString str4 ; CString str5 ; CString str6 ; double summim; double summre; afx_msg void Vivod(); }; как сделать что бы ето работало? Код компилируется. ??? Програма читает строку , конвертирует в Доубле и выводит в другое место... |
| Автор: Earnest 10.5.2006, 19:41 |
| Sasha1, 1) пиши о своих проблемах конкретнее, не жди телепатов 2) пользуйся тэгами code, пожалей тех, кто захочет тебе помочь 3) перестань издеваться над русским языком, ты не младенец, и не в чате. |
| Автор: Sasha1 10.5.2006, 21:34 | ||||
ProjectDlg.cpp отрывок из программы.
ProjectDlg .h
В чём вопрос. Можно оставить как есть , но тогде не будет задет ООП . а это не красиво.(Ну и не правильно). Хочеться что бы в функциях сложение деление и т.п были методы класаа (в которых описанно что надо делать)), а не просто писать то что он должен делать в корень . т.е по нажатию кнопки. Мне понятно что я написал , лучше не могу .. |
| Автор: Sasha1 11.5.2006, 21:34 |
| Неужели никто не знает )) а как иначе писать ) |
| Автор: LPNcom 12.5.2006, 00:10 |
| Честна, хотел тибе помочь - крутил вверх-вниз - нифига ни понЯл. Удали все лишнее, оставь главное, добавь комменты и скажи канкретно - чо нада. |
| Автор: Sasha1 12.5.2006, 18:53 | ||||||||
| Ок. Извиняюсь... Можно написать так .... И это будет работать...
а я хочу что бы это работало только выглядело примерно так... ( Что бы не были напрямую задействованны функции , а чтобы был вызов метода класа )
complex.h
complex.cpp
Хочеться чтобы была просто другая конструкция... .. Что надо ставить в скобках гапример complex::vivod() ??? и что надо кода use.vivod(); ??? что ьы он делал this->SetDlgItemText(IDC_EDIT1,str5); this->SetDlgItemText(IDC_EDIT2,str6); ??? Добавлено @ 19:05 _______________________________________________________________________________ Хочеться чтобы была просто другая конструкция... .. Что надо ставить в скобках например тут complex::vivod() ??? и что надо когда use.vivod(); ??? что бы он делал this->SetDlgItemText(IDC_EDIT1,str5); this->SetDlgItemText(IDC_EDIT2,str6); ??? |
| Автор: Earnest 12.5.2006, 19:24 | ||||
| Зачем делать Complex диалогом? У тебя есть диалог ProjectDlg, а к одному окну нельзя прицепить 2 разных диалоговых класса. И не надо. Не наследуй класс Complex ни от чего. Передавай в функции, где ты хочешь читать-писать из диалога ссылку на него (можно просто как CWnd, точный класс для этого не обязателен):
Добавлено @ 19:27 Можно сделать и немного по-другому: хранить ссылку на диалог в классе Complex, передавая ее в конструкторе. Тогда так:
|
| Автор: Dray 13.5.2006, 00:10 |
Ну и замечательно! Иногда "лучше по-простому, чем по-умному"! |
| Автор: Sasha1 14.5.2006, 17:56 | ||||||
чаго то не пашет , наверное ошибся
в h_ке описал метод
все тип топ , токо как её запустить.. т.е.
что вместо вопросиков поставить? если проблема не только в них напишите , как использовать этот метод класса)? Добавлено @ 17:59 2 способ , даже отладить не смог)) |
| Автор: Dray 14.5.2006, 23:10 | ||
Откуда функция берет str5 и str6? Это глобальные переменные? Вместо вопросиков поставить this. |
| Автор: Sasha1 15.5.2006, 18:06 |
| c This я разобрался , пасибо.. а вот str5 str6 - CString из Дилогового окна , тут проблема... Я переписал под отдельный класс. Т.е есть Сoplex.cpp & Copmlex.h . Можно сделать так . СDialog h; h.str5 ; и он ето видит , вопрос как сделать IDC_EDIT1 ? |
| Автор: Earnest 15.5.2006, 18:22 |
| Предполагалось, что str должны быть переменными Complex... или передаваться как параметры... Глубину твоего дизайна я постичь не сумела, поэтому не знаю как лучше... |
| Автор: Sasha1 15.5.2006, 18:30 |
| ну да.. я хочу оперировать с 2 классами .. ввод с Диалогового окна , обработка входных параметров Классом СДиалог , а исполнение нужной функции методом класса Комплекс ) |
| Автор: Earnest 15.5.2006, 18:37 |
| Тогда передавай туда все нужные переменные. Или, если их много, засунь их все в структуру и передавай ее. |
| Автор: Sasha1 15.5.2006, 21:46 |
| я сделал . просто создал много новых методов CProjectDlg / всё работает , токо я хотел на 2 класса разбить ... Могу потом своё творение сюда выложить если кому интересно? завтра пойду показывать , так что i'll be back я думаю будет интересно кто помогал , кому я благодарен) |