|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2010, 18:39 | #1 |
Регистрация: 17.11.2009
Сообщений: 6
|
Visual C++ MFC Циклы
Доброго времени суток, господа форумчане. В ходе работы над некой программой возникла проблема. Не буду описывать весь процес, зачем и почему это надо, остановлюсь на одном моменте. Есть 10 Edit`ов. Каждому из них присвоенна переменная типа CString с именем от m_e1 до m_e10 каждому Edit`у соответственно. Так же есть массив char massiv[10][10]; В ходе программы это массив заполняется данными. Так вот суть вопроса: как организовать цикл, что бы данные из массива присваливались переменным в Edit`ах? Так же интересует обратный процесс. Как из данных 10 Edit`ов с помощью цикла записать данные в массив, и как это сделать с int`овскими переменными, т.к. они тоже встречаются.
Вот что у меня есть: Код:
P.S. работаю в MSVS 6.0 MFC Dialog based |
03.05.2010, 20:21 | #2 |
Регистрация: 17.11.2009
Сообщений: 6
|
ап ___/\___
|
03.05.2010, 20:24 | #3 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 15
|
Dobray
Занести указатели на свои переменные m_e1 ... m_e10 в массив, в C++ невозможно динамически обратиться к переменной по имени. |
03.05.2010, 20:54 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,336
|
2confucius
ты не вкурил ниразу. он не пытается обращаться к переменной по имени. в мфц для каждого контрола есть id, вот он и получает относительно id указатели на свои контролы. да, можно занести нужные указатели в массив 2Dobray вот не хотел я тут отписываться.... ну смотри Код:
например, добавил ты 2 эдита(IDC_EDIT1, IDC_EDIT2), кнопку(IDC_BUTTON1), эдит(IDC_EDIT3). в реале как выглядит твой файл ресурсов: #define IDC_EDIT1 1 #define IDC_BUTTON1 2 #define IDC_EDIT2 3 #define IDC_EDIT3 4 вот ты и получается, что ты пробегаешься по всем контролам в своем цикле. (ну не по всем, а которые попадают в промежуток). решение? как уже сказали - занеси нужные указатели в массив/вектор, либо просто отсортируй нужным образом resource.h файл. чтоб он принял след вид: #define IDC_EDIT1 1 #define IDC_EDIT2 2 #define IDC_EDIT3 3 #define IDC_BUTTON1 4 в этом случае тебе нужно жестко следить за добавлением новых контролов, чтоб эта сортировка не нарушилась. ну и еще перестанут работать аналогичные циклы (если они присутствуют), соответственно, их тоже нужно переписать в соответствии с этими правилами
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
16.05.2010, 20:42 | #5 |
Регистрация: 17.11.2009
Сообщений: 6
|
спасибо что отписались. проблема решилась так:
есть всё теже CString`овые переменные m_e1, m_e2, ..., m_e10. я сделал массив CString *p[10]={&m_e1, &m_e2, ... , &m_e10}; всё заработало как мне нужно было, т.е. p[i]=mas[i]; суём в цикл, всё красиво и удобно с int`ами аналогично. |
16.05.2010, 20:42 | #6 |
Регистрация: 17.11.2009
Сообщений: 6
|
спасибо что отписались. проблема решилась так:
есть всё теже CString`овые переменные m_e1, m_e2, ..., m_e10. я сделал массив CString *p[10]={&m_e1, &m_e2, ... , &m_e10}; всё заработало как мне нужно было, т.е. p[i]=mas[i]; суём в цикл, всё красиво и удобно с int`ами аналогично. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
среда разработки Visual C++, MFC | shurik_7866 | Visual C++ | 1 | 12.02.2010 19:05 |
Visual Studio 2008 и C++(MFC) | rockedit | Visual C++ | 7 | 18.12.2009 23:27 |
Ув.программисты,помогите! MFC,Visual C++ | zatey_ka | Помощь студентам | 1 | 20.10.2008 14:45 |
Visual c++(MFC) | CUtty | Visual C++ | 1 | 13.10.2008 21:21 |
Примеры для Visual C++ MFC | RMih | Visual C++ | 2 | 29.01.2008 12:25 |