Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
11.06.2014, 21:26
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Ну то что через API это понятно. How to Create Wizards About Property Sheets При первичном чтении меня смущают фразы про Dialog Box Templates. В VB6 обычно формы/диалоги в ресурсы не запихиваются. Хотя подобный ресурс полагаю легко сварганить в VC++ 6.0 и засунуть в res файл. В любом случае опыта здесь нет. Направьте мысли. М.б. примеры какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.06.2014, 03:12
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Как ресурсы-диалоги из собственного exe-шника доставать? В C++ редакторе сделал 3 диалога. Обозвал 1001,1002,1003 -цифрами Код: vbnet 1. 2. 3. 4. 5. 6.
не работает Код: vbnet 1. 2. 3. 4. 5. 6.
не работает А вот из чужой dll что интересно работает. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Как свои Dialog - ресурсы доставать? Пример м.б.? Без понимания этого вряд ли стоит дальше двигаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.06.2014, 06:44
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
пропертишиты делать можно, в vb есть шаблон типа формы или контрола. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.06.2014, 07:01
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Добавить диалог в ресурсы можно с помощью компилятора ресурсов: Код: plaintext 1.
или с помощью любой .net-студии. *.res - выходной файл, *.rc - текстовый файл со списком ресурсов: Код: plaintext 1. 2. 3. 4. 5.
значение типа для диалога я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.06.2014, 03:54
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
AntonariyДобавить диалог в ресурсы можно с помощью ... или с помощью любой .net-студии. С rc-файлами я давно не вожусь. .res-файл прекрасно правится через ResHacker.exe -но при этом его нелишне пересохранить через редактор ресурсов VC++ 6.0 (тот который родственник VB6). Ну и диалоги именно через VC++ 6.0 прекрасно добавляется. C DialogBoxParam/CreateDialogParam я лоханулся в следующем. C-шная студия по дефолту лепит Код: plaintext 1. 2.
А надо как минимум WS_POPUP (чтоб его тупо вывести) Код: plaintext 1. 2.
И после такой правки все заработало. 2 варианта вывести диалог: 1. Код: vbnet 1. 2. 3. 4. 5. 6. 7.
2. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ну, естественно CallBack - DialogProc -чтоб хоть проиллюстрировать как с диалогом дальше работать. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Я приложил маленький тест: диалог #101 с единственной кнопкой ItemID #1000 (чтоб закрыть его). '================= На самом деле мне эти тонкости со стилями не нужны. Моя цель это стандартный Wizard: How to Create Wizards Я тут покопал ресурсы например проги ntbackup.exe (мастер Bakup/Restore) и думаю мне достаточно такого стиля Код: plaintext 1. 2.
Сыр бор с тест-проектом только лишь чтоб понять что я могу сослаться на диалог-ресурс своего exe из VB6 через мое MAKEINTRESOURCE(5026) As String либо "#5026" As String либо 5026 As Long Походу все 3 варианта рабочие. Теперь можно с чистой совестью двигаться дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.06.2014, 03:56
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
И сдается мне что Dialog - это легальная альтернатива CreateWindow. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.06.2014, 01:12
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Ну вроде получилось все. Наваял тест проект. Выкладываю, пока не кастомизировал. Типа мастер BackUp-Restore (пустышка, но принцип понятен). На вистообразных использую стиль PSH_AEROWIZARD, хотя можно и классический. CallBack-для каждой страницы - он аналогичен тому, который используется при кастомизации Common Dialogs - по крайней мере я так сделал. Потому что по документации вроде как положено PropSheetProc callback function , но я не использовал флаг PSH_USECALLBACK и подменил ее на обычную DialogProc callback function , до конца этого момента не понял, но вроде прокатило. Как-то так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.06.2014, 01:15
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Exe-шник с 32-битными битмапами (подменяются ResHacker-ом после компиляции). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.06.2014, 01:16
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Ну и скрин до кучи. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 07:28
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
А как крестик убрать (который закрывает визард)? Чтоб его вообще не было. Пример: мастер добавления нового девайса. Просто когда Wizard чего-то делает этот крестик точно лишний (от кривых ручонок). И это не то же самое что Cancel, с Cancel я разобрался (Disable/Enable). Возможный вариант: Код: vbnet 1. 2. 3. 4. 5.
Но крестик просто disabled в этом случае. И это не работает на аэро-визарде. Должен быть какой-то "легальный" путь, пока не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 07:31
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
На языке VB-формы я хочу ControlBox=False. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 09:54
|
|||
---|---|---|---|
|
|||
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Так это в стиле можно задать. К примеру: STYLE WS_DLGFRAME | WS_CAPTION окно будет без кнопок ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 14:16
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
_Дмит_Так это в стиле можно задать. К примеру: STYLE WS_DLGFRAME | WS_CAPTION окно будет без кнопок Судя по тому как ты это записал, ты имеешь ввиду стиль диалога в ресурсах. Если речь идет об отдельном диалоге, который выводишь через DialogBoxParam/CreateDialogParam то я с тобой соглашусь. И это подтверждается моим же примером (парой постов выше): 16164928 Он там выводится с Caption и без кнопок. Но если блин у меня визард - т.е. набор диалогов, объединяемый структурами PROPSHEETPAGE/PROPSHEETHEADER то плевать он хотел на то, какие стили в самих диалогах засунуты. Хочешь, поиграйся, в этом посте проект вложен: 16172901 Здесь варианта куда рыть всего 2 мне кажется: 1) Либо какая-нибудь "легальная" хитрость кот. я не доглядел/не дочитал 2) Либо применять что либо к окну GetParent(hwndDlg), где hwndDlg -хэндл первого выводимого диалога, доступный через его Proc-ф-цию. Причем самое удобное место это Код: vbnet 1. 2.
И один из таких вариантов (не очень правильный) я привел. GetParent(hwndDlg) -это его оболочка, то бишь сам Wizard. Но во втором пути есть куча проблем, ибо уже созданные окна очень плохо и не всегда реагируют на изменения стилей. Я думаю должно бы быть что-то по первому направлению, не думаю что Microsoft извращается, убрав крестик в половине своих визардов. А с другой стороны, в ряде других визардов от Microsoft крестик присутствует и их очень даже можно схлопнуть без всяких вопросов и в самый неподходящий момент (например, когда распаковывает файлы из архива). Как вариант можно конечно и забить на это и оставить крестик. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 14:35
|
|||
---|---|---|---|
|
|||
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
К сожалению у меня только VBA в наличии, поиграться не получиться :) Может постучусь обратно в открытую дверь, в VBA можно удалить кнопки изменив стиль окна. Не подойдёт ли это Вам? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2014, 14:39
|
|||
---|---|---|---|
|
|||
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
авторибо уже созданные окна очень плохо и не всегда реагируют на изменения стилей.- DrawMenuBar не помогает? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.06.2014, 00:56
|
|||
---|---|---|---|
Wizard / Property Sheets на VB реально сделать? |
|||
#18+
Чтобы убрать крестик, надо снять стиль WS_SYSMENU с родительского диалога Wizard-а (не те, которые в ресурсах, т.е не страницы визарда, а генерируемая оболочка). Делается это через документированную процедуру PropSheetProc callback function Здесь два способа: 1) Ковырять PSCB_PRECREATE и структуры DLGTEMPLATE structure и DLGTEMPLATEEX structure (причем последняя видимо никогда не при делах -для визарда, но тем не менее). Этот метод не работает для PSH_AEROWIZARD. 2) Но к счастью можно воспользоваться PSCB_INITIALIZED и просто убрать WS_SYSMENU через SetWindowLong/GetWindowLong/GWL_STYLE И это работает как для PSH_WIZARD97 так и для PSH_AEROWIZARD Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2156304]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 290ms |
0 / 0 |