Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Visual C++.Dialog Box, в MFC 
:(
    Опции темы
dont
Дата 27.10.2005, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.7.2005

Репутация: нет
Всего: нет



Цитата
Т.е получить представление, затем закладку, а уж затем , окно диалога связяное с закладкой
Объясни пожалуйста как это сделать.
Цитата
Вопрос 2
Где CEdit* edit=(CEdit*)GetDlgItem(0x480) ;
edit-> GetWindowText(); 

Не использовал это приведение, на основании прочитаных строчек в МСДН"е:
Цитата
The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. However, GetWindowText cannot retrieve the text of a control in another application.
Но теперь понял, что я был неправ.И что это немножко не к тому прилепил.

Я не знаю,уже окончательно запутался, просто прогу писал, основываясь на прочитанной книге, вот цитата

Цитата
void CSpecialFileDialog::OnBnClickedDelete()
{
ODeleteAll = TRUE;
// 0x480 - идентификатор дочернего окна поля ввода File Name1
// (по данным, полученным от SPYXX)
GetParent(}->SetDlgItem(Ox480)->GetWindowText(m_strFileNarne);
GetParent()->SendMessage(WM_COMMAND, IDCANCEL);

Идентификаторы дочерних элементов управления стандартных диалоговых окон пе-
речислены в файле dlgs.h в каталоге Include. В частности, для поля ввода File Name
используется * define-константа edtl. В этом же файле объявлена *с!ейпе-константа
stc32. — Прим, перев.


И еще по-поводу GetParent()'a:
Цитата
Примечание Даже если вы не применяете вложенных диалоговых окон, все рав-
но объекту CFileDialog сопоставлены два окна. Допустим, вы переопре-
делили OnlnitDialog в производном классе и хотите присвоить какой-
нибудь значок диалоговому окну, предназначенному для выбора файлов.
Тогда вы должны вызвать CWnd::GetParent, чтобы получить окно верх-
него уровня по аналогии с тем, что вы делали в программе ЕхОУЬ.
HICON hlcon = AfxGetApp()->LoadIcon(ID_MYICON);
GetParent()->SetIcon(hIcon, TRUE); // установка крупного значка
GetParent()->SetIcon(hIcon, FALSE); // установка мелкого значка


PM MAIL ICQ   Вверх
dont
Дата 27.10.2005, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.7.2005

Репутация: нет
Всего: нет



smile
Цитата
// 0x480 - идентификатор дочернего окна поля ввода File Name1
// (по данным, полученным от SPYXX)

ПроФФФтыкал! Тем более некогда не пользовался Спайем, теперь буду знать, прошу извенение за напрасное беспокойство и кражу Вашего времени, ошибка оказалась как всегда - в ДНК. smile
Всем БОЛЬШОЕ спасибо за терпение, с которым Вы терпели меня. smile
З.Ы, Не буду прощатся, скажу до встречи!
smile
З.З.Ы. Большое спасибо создателям этого форума, вам нужно памятник нерукотворный поставить.Очень полезный ресурс на котором много умных людей. smile
PM MAIL ICQ   Вверх
Earnest
Дата 27.10.2005, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(dont @ 26.10.2005, 00:19)
Что такое "многослойный диалог, сам юзал "GetParent()" т.к. опять таки же прочитал в умной книжке, а про многослойные диалоги там ничего небыло.

Это не термин - просто надо же как-то называть диалог с вложенными диалогами...
Таким образом Windows обеспечивает программистам возможность расширения своих стандартных диалогов. Если посмотреть Спаем, то внутри диалога OpenFile можно найти еще один диалог. Обычно он пустой и имеет нулевую высоту. Но можно задать свой шаблон со всякими дополнительными элементами, что видимо ты и делаешь. В любом случае, именно этот вложенный диалог является воплощением твоего класса, поэтому к элементам стандартного диалога и нужно обращаться через GetParent()->GetDlgItem...
Да ты уже, наверное, все понял.

В чем ошибка-то была? Наверно, надо было сразу спросить тебя, в какой студии ты работаешь. Я посмотрела спаем 2 приложения, одно создано 6-й студией, другое - 7-й. В первом случае (6) на диалоге OpenFile есть edit с ID=0x480, а вот во-втором (7) - вместо него - комбобокс с совсем другим ID. В этом дело?
Вообще говоря, чтобы не зависеть от таких вещей, лучше не обращаться к чужим полям-идентификаторам напрямую. В CFileDialog есть возможность через переопределение обработчиков уведомлений влезть практически куда-угодно.

Спай - очень полезная штука.



--------------------
...
PM   Вверх
dont
Дата 27.10.2005, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.7.2005

Репутация: нет
Всего: нет



Цитата
В чем ошибка-то была?
- Да ошибка была в том, что я написал 0х480(т.к. прочитал опять таки в той же "умной" книжке smile ,которая и написана под седьмую студию, которую я и использую), но.... проверив Спайем, увидел что там КентролАйДи 0x47C. smile smile smile
Цитата
Спай - очень полезная штука.
- Уже знаю.=)

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.