Страница: 1 |
Вопрос: вопрос о ComDialog | Добавлено: 11.02.04 10:50 |
Автор вопроса: ![]() |
подскажите пожалуйста, можно ли стандартное дилоговое окно (типа ChooseColor) показыватьв том месте экрана, где курсор или объект, который его вызывает. Использование типа hwnd формы не подходит! ![]() |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #1 | Добавлено: 11.02.04 12:19 |
Попробуй найти hWnd диалогового окна, тем более что ты знаешь его заголовок, и двигай его через MoveWindow |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #2 | Добавлено: 11.02.04 15:10 |
если я ничего не путаю, то hWnd - это свойство формы top-level (слой положения окна) типа Long, тогда причем тут оно? мне хотелось бы знать, есть управление над окнами стандартных диалогов или нет!? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 57 |
Профиль | Цитата | #3 | Добавлено: 11.02.04 15:26 |
cresta тебе и говорит о хэндле окна, где цвет выбирается. MoveWindow работает с хэндлом. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #4 | Добавлено: 12.02.04 09:34 |
hWnd - это не свойство формы, а грубо говоря, его имя, или его адрес, по которому можешь выслать те или иные команды. Если имя диалогового окна выбора цвета( его заголовок) например "Выбор цвета", то найди его hWnd ChooseWnd= FindWindow(vbNullString, "Выбор цвета"), а затем определи точку, куда надо установить левый верхний угол окна и его ширину и высоту и затем MoveWindow(ChooseWnd, 200, 150, 175, 300, 1) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #5 | Добавлено: 15.02.04 21:31 |
А как быть, если ОС другого компа отличается от моей? Тогда возможно разногласие с именами форм. Например ("Цвет" и "Color") |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 16.02.04 03:57 |
ChooseColor - это не стандартное для VB диалоговое окно. Стандартное - CommonDialog.ShowColor |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #7 | Добавлено: 16.02.04 17:02 |
Не знаю, можно установить свой заголовок или нет при выборе цвета (при выборе файла можно). Если можно, то установи и ищи по этому заголовку. Если нет, то получи список всех открытых окон и через InStr найди которое из них содержит слово "цвет", если такого нет, ищи которое содержит "color" . Это немного усложняет задачу, но решить можно в любом случае. Причем искать надо в процедуре таймера, т.к. когда вызываешь ф-цию выбора цвета, твоя программа заморозится, пока не закончишь выбирать, и единственное место в программе, которое будет работать - это таймер.Вот на примере выбора файла: End Sub Private Sub Часы1_Timer() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #8 | Добавлено: 20.02.04 02:53 |
cresta, че-то ты кусок не сначала шлешь, скинь мне на мыло, если он такой большой. Буду признателен |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #9 | Добавлено: 20.02.04 03:05 |
ладно понял я как поступить, hadle = CommonDialog1.hDC ' вот так я узнаю хандл этого окна а при появлении это окно ни на какие команды из моей проги не реагирует, т.е. поучается что я не могу получить ни его хендл ни двинуть его (либо его еще нет, либо уже нет). как быть |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #10 | Добавлено: 20.02.04 04:12 |
Все, НАШЕЛ! Всем спасибо! особенно creste кому надо мыльте мне Вот что значит поискать !!! |
Страница: 1 |
|