Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 952
от 31.12.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 475, Экспертов: 52
В номере:Вопросов: 3, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 115954: Здравствуйте! У меня несколько вопросов по MFC. Подскажите, как можно обмениватся данными между классами диалогов? Например создаю я проект, dialog based, в котором по умолчанию два класса, CMyApp и CMyDlg, добавляю ещё один диалог, для котор...
Вопрос № 115989: Уважаемые эксперты! Помогите решить такую задачу: Определить класс стека действительных чисел как массив, число элементов которого определяется конструктором. Запись в стек и чтение из стека осуществляется с помощью постфиксных операций ++ и...
Вопрос № 116009: будьте добры приведите пример программы которая не видна в списке процессов (CTL-ALT-DEL)...

Вопрос № 115.954
Здравствуйте!
У меня несколько вопросов по MFC. Подскажите, как можно обмениватся данными между классами диалогов?
Например создаю я проект, dialog based, в котором по умолчанию два класса, CMyApp и CMyDlg, добавляю ещё один диалог, для которого создается класс CMyDlg2.
1) Как из CMyDlg изменить переменные находящиеся в CMyDlg2?
2) Как из CMyDlg например изменить текст в EditBox, находящемся на форме класса CMyDlg2?
3) При отображении формы через метод DoModal предыдущая блокируется, как сделать чтобы не блокировалась?
Отправлен: 25.12.2007, 22:04
Вопрос задал: Вячеслав Шинкаренко (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Арефьев Сергей
Здравствуйте, Вячеслав Шинкаренко!

1. Например, так:

<некая функция-член класса CMyDlg>

...
MyDlg2.m_iSomeVariable = 10;
...

То есть, обращаемся к переменной m_iSomeVariable, члену класса CMyDlg2. При этом эта переменная должна быть доступна вне своего класса, что проще всего сделать обьявив ее public.

Но использовать данный подход не рекомендую. Правильным было бы написать функцию-член класса CMyDlg2, которая занималась тем, что изменяла бы переменные-члены этого класса сама, присваивая им необходимые значения.

Например, так:

void CMyDlg2::SetValue(int iVal)
{
m_iSomeVariable = iVal;
}

И вызвать ее там, где необходимо (хоть из другого класса, хоть в самом CMyDlg2.

2. Аналогично п.1 сразу отбрасываем вариант прямой манипуляции данными другого диалога и создаем подобную функцию (если у вас с EditBox'ом связана текстовая переменная):

void CMyDlg2::SetEditText(CString strText)
{
UpdateData(TRUE);
m_strEditBox = strText;
UpdateData(FALSE);
}

или такую функцию (если у вас с EditBox'ом связана переменная типа CEdit):
void CMyDlg2::SetEditText(CString strText)
{
m_EditWnd.SetWindowText(strText);
}

И вызывать эту функцию потом из любого нужного места программы.

3. Предыдущий диалог блокируется потому что при создании второго диалога Вы пользуетесь функцией DoModal. При этом диалог создается модальным (как следует из названия функции), т.е. пока он не будет закрыт, предыдущий диалог не будет доступен.

Вам нужно создать диалог немодальным. Например, так:

...
CMyDlg2 dlg;
dlg.Create( IDD_MY_DLG2 );
dlg.ShowWindow();
...
Ответ отправил: Арефьев Сергей (статус: 1-ый класс)
Ответ отправлен: 25.12.2007, 22:50
Оценка за ответ: 5
Комментарий оценки:
Всё, понятно. Спасибо!


Вопрос № 115.989
Уважаемые эксперты! Помогите решить такую задачу:

Определить класс стека действительных чисел как массив, число элементов которого определяется конструктором. Запись в стек и чтение из стека осуществляется с помощью постфиксных операций ++ и --. Аргументом конструктора может быть массив
Отправлен: 26.12.2007, 02:08
Вопрос задал: Сергеев Александр (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Сергеев Александр!
В приложении класс параметризованного стека (сильно упрощенная реализация). Хотя конечно реализация чтения/записи через такие операторы выглядит крайне нелогично. Уж лучше традиционные push/pop.

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 26.12.2007, 03:15

Отвечает: Ross
Здравствуйте, Сергеев Александр!

Класс стека и пример его использования в приложении.

Приложение:

---------
Доступно только то, что видимо (c) Б. Керниган

Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 26.12.2007, 03:34


Вопрос № 116.009
будьте добры приведите пример
программы которая не видна в списке
процессов (CTL-ALT-DEL)
Отправлен: 26.12.2007, 10:06
Вопрос задал: Vadim Z (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mitya86
Здравствуйте, Vadim Z!

Для windows 9x подойдет код из приложения, а для других виндоусов будет уже сложнее, посмотри здесь http://bugtraq.ru/library/programming/invisible.html, тут подробно разбирается эта тема с примером кода.

Приложение:

Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 26.12.2007, 12:47
Оценка за ответ: 4
Комментарий оценки:
RegisterServiceProcess не работает под XP
нужен рабочий пример
под XP


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.66 от 23.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное