Страница: 1 | 2 | 3 | 4 | 5 | 6 |
Вопрос: Позиционирование диалогов CommonDialog
Добавлено: 04.07.04 16:20
Автор вопроса: Lister | ICQ: 298621256
Ответы
Всего ответов: 80
Номер ответа: 46
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #46
Добавлено: 16.09.04 13:41
Как я мог забыть написАть про это в комментариях внутри Form1! - проект совместим только с Win2000 (и, по идее, выше), т.к. Places Bar бывает только под Win2k+, да и в коде много чего, что завязано именно на Win2k+ - например, три последних параметра в описании структуры OPENFILENAME.
Я только щас обратил внимание, что mc-black пишет: "У меня Win98"! Отсюда и проблемы.
Номер ответа: 47
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #47
Добавлено: 16.09.04 15:38
Я тут поковырялся и иконка у меня теперь рисуется, но только в том случае, когда кнопка не нажата. Если кнопка нажата или находится в "приподнятом" состоянии (когда мышь над ней проходит), то иконка исчезает и снова появляется, когда кнопка отжата.
Не пойму ничего!
Номер ответа: 48
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #48
Добавлено: 16.09.04 15:44
"Я тут поковырялся" - а можно ли поконкретнее?
Номер ответа: 49
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #49
Добавлено: 16.09.04 16:03
А по конкретней не получиться - я сам не понимаю, что я такое сделал )) Поэтому и написал "поковырялся"
1)Я убрал несколько контролов, которые ты добавлял
2) расставил везде Option Explicit
3) Многие константы и и функции сделал Private вместо Public
Если просто взять и распаковать тот пример, который ты мне прислал - в нем иконка по-прежнему не рисуется
Кстати, давал пример на проверку - у sne все работает. У него тоже ХР. А у меня на двух компах - и нулевой результат Точнее, уже половинчатый результат...
Номер ответа: 50
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #50
Добавлено: 16.09.04 17:05
У меня левая верхняя кнопка тоже без иконки, ОС - ХР home
Номер ответа: 51
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #51
Добавлено: 16.09.04 17:10
Попробуйте вместо моего фотоаппарата использовать иконку меньшего размера - м.б. она просто "не влезает"? Глупое, наверное, предположение, но... чем чёрт не шутит?
Номер ответа: 52
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #52
Добавлено: 16.09.04 17:41
Спасибо, Comanche, у меня голова перестала болеть, я не стал думать, что я крайний и т.п. А вообще, в принципе, я смогу для Win98 использовать твой алгоритм вызова Callback-функции без больших изменений? Просто переделать структуру OPENFILENAME, от чего-то отказаться и т.п. Всё-таки я хочу сделать нечто похожее под Win98, тем более часто Win поддерживает совместимость "по восходящей" для своих продуктов.
Номер ответа: 53
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #53
Добавлено: 16.09.04 17:50
Можешь, только помимо изменения описания структуры придётся ещё повозиться с кодом процедуры ModifyDlg. Пробуй. Я тоже начинал писАть этот код под 98-ми, но потом переключился на 2000.
Кстати, если хочешь начать более или менее "с чистого листа", то попробуй повозиться с проектом Аркадия Оловянникова: http://www.freevbcode.com/ShowCode.asp?ID=983
Номер ответа: 54
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #54
Добавлено: 16.09.04 18:41
Comanche, а какова основная цель проекта? Сделать оперативный просмотрщик .txt - .bmp - .jpg файлов ?
Номер ответа: 55
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #55
Добавлено: 16.09.04 19:52
Нет, нет! С размером иконки все в порядке. Я же говорю, что у меня она на отжатой кнопке начала отображаться...
Номер ответа: 56
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #56
Добавлено: 17.09.04 00:53
У кого-то иконка на ХР отображается, у кого-то нет...
Елки палки... В чем же может быть причина такого поведения???
2 cresta:
Посмотри, пожалуйста, у тебя вот эта штучка: tCDI.nmCommon.dwItemSpec в функции WindowProc чему равна?
У меня всегда по нулям
Номер ответа: 57
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #57
Добавлено: 17.09.04 01:28
Да я уже её смотрел, == 0
Пробовал сделать так:
If tCDI.nmCommon.dwItemSpec = 0 Then
В этом случае рисует, если нажата какая-либо другая кнопка, не верхняя, а если нажать верхнюю, то рисунок на ней опять пропадает
Номер ответа: 58
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #58
Добавлено: 17.09.04 02:23
И тулпип для этой кнопки тоже не отображается.
Номер ответа: 59
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #59
Добавлено: 17.09.04 02:41
И ещё:typedef struct _TBBUTTON
.idCommand
Command identifier associated with the button. This identifier is used in a WM_COMMAND message when the button is chosen.
Тут ничего не сказано, что это идентификатор кнопки, который передаётся по WM_NOTIFY. Сказано, что по WM_COMMAND
Т.е. явно не указано, что при WM_NOTIFY тоже будет использоваться IDC_MYBUTTON для определения, какая кнопка нажата. Хотя в коде делается
.idCommand = IDC_MYBUTTON
видимо в расчёте на то, что ID кнопки будет совпадать с IDC_MYBUTTON как при WM_NOTIFY, так и при WM_COMMAND.
Может тут собака порылась?
Номер ответа: 60
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #60
Добавлено: 17.09.04 02:46
Да, и ещё информация: ix для нажатой верхней кнопки - отрицательное значение, для остальных кнопок - положительное, соответственно
DrawIcon tCDI.nmCommon.hdc, ix, iy, hMyIcon
не работает, и поэтому при нажатии на верхнюю кнопку рисунок пропадает.