Объемный МассажБокс и СДК

Тема в разделе "WASM.WIN32", создана пользователем DiSS, 30 дек 2007.

  1. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Значить, кнопки у меня в редакторе ресурсов объемные. Но как мне просто вызвав MessageBox получить кнопку ОК в стиле ХР. Я конешно подозреваю, что надо вмешивать какойто стиль, но у мну СДК для Вин2000. Как?

    И если можете - ссылку на сдк для ХР. (ну если такая есть - и для висты). язык можно английский.
     
  2. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    Берешь WINDOWS\system32\usmt\migwiz.exe.manifest, копируешь в путь_к_твоей_программе\имя_твоей_программы.exe.manifest. Запускаешь программу, любуешься.
    Второй вариант - подобный манифест ввести в ресурс такой строкой:
    Код (Text):
    1. // RC-file
    2. 1 24 "manifest_file.xml"
    ,где manifest_file.xml - имя манифеста.
    Еще исправь в тексте манифеста имя той программы на имя своей, но это не обязательно.
    PS: в некоторых случаях, типа проги на VB, такой трюк может провалиться.
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Код (Text):
    1. <?xml
    2.  version="1.0"
    3.  encoding="UTF-8"
    4.  standalone="yes"?>
    5. <assembly
    6.  xmlns="urn:schemas-microsoft-com:asm.v1"
    7.  manifestVersion="1.0">
    8. <assemblyIdentity
    9.  processorArchitecture="*"
    10.  version="версия проги"
    11.  type="win32"
    12.  name="имя проги"
    13. />
    14. <dependency>
    15. <dependentAssembly>
    16. <assemblyIdentity
    17.  type="win32"
    18.  name="Microsoft.Windows.Common-Controls"
    19.  version="6.0.0.0"
    20.  publicKeyToken="6595b64144ccf1df"
    21.  language="*"
    22.  processorArchitecture="*"/>
    23. </dependentAssembly>
    24. </dependency>
    25. </assembly>
    это текст манифеста. подставь версию и имя своей проги и добавляй в ресурсы вышеуказанным способом.

    нужно предварительно подгрузить comctl32.dll. например так, поместив приведённый код в отдельный модуль:

    Код (Text):
    1. Public Sub Main()
    2.  On Error Resume Next
    3.  Dim iccex As InitComCtl
    4.  With iccex
    5.   .lngSize = LenB(iccex)
    6.   .lngICC = &H200
    7.  End With
    8.  InitCommonControlsEx iccex
    9.  On Error GoTo 0
    10.  frmMain.show
    11. End Sub
    ЗЫ: сорри за VB :)
     
  4. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Чето у меня не получается подключить его fasm'om

    Если можете - код с секцией ресурсов.
     
  5. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    это версия comctl библиотеки, с версией висты связан весьма отдалённо

    publickey - именно тот, что прописан.

    я же написал, что нужно изменить: имя ТВОЕЙ проги и её версию
     
  6. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Все, пасиба. Я уже сам разобрался. :)


    Чето у меня не получается подключить его fasm'om
    Если можете - код с секцией ресурсов.
     
  7. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    с fasm'ом не работаю. добавь манифест редактором ресурсов в уже готовый ресурс
     
  8. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Кто работает с fasm'ом, подскажите, как?
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    DiSS
    data resource from 'resource.res'. Если макросами, то через resdata/file(строка).
     
  10. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Я кошешно прошу прощения за настырность, но с манифестами чето никак недоговорюсь...

    Значить отдельным файлом поключить получилось, работает.
    Включением в исполяемый файл тоже включил нормально, но он оттуда неработает.

    Все ошибки, все проверил. Все включено правильно.
     
  11. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    нужно вставить импорт из comctl32.dll например - InitCommonControlsEx.
    любым способом - лишь бы comctl была загружена в твой процесс
     
  12. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Подключил, и даже если первой вызываю эту функцию, всеравно плоские... Я уже даже не знаю что делать. :dntknw:
     
  13. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >Включением в исполяемый файл тоже включил нормально, но он оттуда неработает.

    Выложите здесь. OS - какая ?
     
  14. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    DiSS
    готовый exe в студию!
     
  15. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    хп сп 2 - все новое (если можна так сказать)

    5.82 - версия comctl32.dll

    Испытания проводились на встроеном примере ФАСМа.

    Все в рахиве.

    http://webfile.ru/1664598 - 2 кБ
     
  16. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    DiSS
    перезалей куда-нить у мну не качаеццо :dntknw:
     
  17. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Ктото толькочто скачал.

    Сейчас попробую...
     
  18. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    http://www.rarhost.com/download-s4966t.html

    Попробуй это...
     
  19. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    ресурс манифеста должен иметь тип "24" и имя "1". язык - не важен.

    смотри исправленный exe в аттаче.
    в фасме не разбираюсь, как это сделать.

    в *.rc файле это делается так:
    Код (Text):
    1. ...
    2. 1 24 "manifest.xml"
    3. ...
     
  20. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    ПАБЕДА!!!

    Чуваки, всем спасиба. Все разобрался, все работает.

    Вот так получяется.
    Код (Text):
    1. section '.rsrc' resource data readable
    2.   directory RT_MANIFEST,manifestdir                ;RT_MANIFEST=24 !!!
    3.     resource manifestdir,1,LANG_NEUTRAL,manifest
    4.       resdata manifest
    5.         file 'manifest.xml'
    6.       endres
    Большое всем спасибо!