Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic

Войти
Регистрация
Восстановить пароль
 
Comanche
#1

Помогите разобраться с диалогом - VB

29.06.2010, 17:59. Просмотров 609. Ответов 1
Метки нет (Все метки)

По адресу http://www.freevbcode.com/ShowCode.asp?ID=983 лежит симпатичный пример того, как дополнить окно стандартного диалога открытия файла возможностью просмотра выбранного в списке файла. Для этих целей в данный диалог внедряется (с помощью SetParent) ЭУ RichTextBox.

Всё понятно, кроме одного:
(это строчка из процедуры ModifyDlg модуля Module1)
Код
DlgHwnd = GetParent(hDlg)
Кто может являться родителем окна диалога? Почему RichTextBox внедряется именно в окно с хэндлом DlgHwnd, а не hDlg?

Я, конечно, сначала призвал на помощь Spy++. Так вот, эти два хэндла - согласно VB-коду связанные родственными отношениями - находятся совсем в разных местах! т.е. при просмотре в Spy++ получается, что они НЕ связаны родственными отношениями!!! Окно с хэндлом DlgHwnd имеет заголовок 'Открыть', имя его класса = '#32770 (Dialog)', и у него куча детей: Static, ComboBox, ListBox, Edit и т.д. А вот окно с хэндлом hDlg - вообще без детей и без заголовка, хотя имя его класса - то же самое ('#32770 (Dialog)'). Попытка через меню правой мыши сделать этому окну 'highlight' не вызывает никакого подсвечивания контура окна, т.е. непонятно, где оно вообще 'физически' находится...

Я попытался внедрить (с помощью SetParent) ЭУ RichTextBox в это загадочное окно с хэндлом hDlg - и ЭУ вообще пропал из поля зрения.

ЧТО ЖЕ ЭТО ЗА РОДИТЕЛЬ ТАКОЙ ?!?!?!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2010, 17:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите разобраться с диалогом (VB):

Помогите разобраться с DATACOMBO. - VB
Значит так...Есть у меня Adodc1 и Adodc2. Adodc1.CommandType = adCmdText Adodc1.RecordSource = 'SELECT * FROM tblMain;' ...

Помогите разобраться с кодом - VB
Народ!!! Помогите срочно!!! У меня скоро экзамен по инфе, а через 2 дня прогу надо показывать... короче прогу писал половинуя, а другую...

Помогите разобраться с GetOpenFileName. - VB
Дайте рабочий пример с GetOpenFileName/GetSaveFileName в MSDN'е там они с каким-то типом работают OPENFILENAME или как-то так, в общем...

Помогите разобраться с Coolbar'ом - VB
Помогите разобраться с Coolbar''ом, в частности, со свойством Clild. Заранее спасибо.

Помогите разобраться с LPT - VB
Всем доброго времени! (сразу спасибки, что не пропустили тему!) Как-то раньше не задумывался над вопросом работы с внешними устройствами...

Помогите разобраться с кодом - VB
Поймите меня правильно! Мне реально больше не у кого спросить и негде прочитать! Купил уже около 10 книг по Visual Basic но на этот вопрос...

1
Comanche
30.06.2010, 14:06 #2
Нашёл какое-то объяснение по адресу:
http://softwareforums.intel.com/ids/board/message?board.id=5&message.id=1386

Цитирую:

That's because the hook behaves differently depending on presence of OFN_EXPLORER flag. See 'OFNHookProc' and 'OFNHookProcOldStyle' entries in SDK Help. Briefly, hWnd argument of 'old style' hook (without OFN_EXPLORER) is the 'Open' dialog itself. For 'new style' hook the hWnd is handle of a child dialog of 'Open' dialog -- use GetParent(hWnd) to get the handle of main dialog itself.

The change was introduced because now you can customize the dialog by adding a child dialog of your own. See for example CVF's Open dialog -- it has a checkbox and a combo added at the bottom; they're placed on a borderless child dialog which is a child of the 'Open' dialog.

=====================================================================

Английский я, слава богу, знаю хорошо. Но всё равно не въехал в СУТЬ. Простыми словами можете объяснить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2010, 14:06
Привет! Вот еще темы с ответами:

Помогите разобраться с mscomm? - VB
Не могу установить связь с контроллером по com порту набираю например mscomm1.portopen = true mscomm1.output = 'Erase' От...

Помогите разобраться с True DataControl - VB
Раньше юзал обычный ADODC, но количество конекшенов к базе стало критичным, по-этому нарыл сабж, но не могу понял логику работы с ним...

Помогите разобраться с потоками CreateThread - VB
Покажите код на бейсике который работает с потоками и прога не вылетает. Не могу ничего поделать, все многопоточные приложения вылетают или...

Помогите разобраться с while & winsock - VB
помогите плз разобраться %) Программа должна выбирать из базы некоторые e-mail, потом коннектится на 80 порт к некоему серваку, выгребать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru