Диалогое окно. Косметика. (masm)

Тема в разделе "WASM.BEGINNERS", создана пользователем Wisder, 7 авг 2007.

Статус темы:
Закрыта.
  1. Sturgeon

    Sturgeon New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2006
    Сообщения:
    111
    Про регионы недавно я тоже спрашивал. Узнал много интересных штук. Если хочешь, посмотри вот эту тему:
    Создание региона
     
  2. OSMan

    OSMan New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2007
    Сообщения:
    23
    Извините, если не в тему.
    А как сделать окно как в ХР? В Дельфях есть компонент XPMan, например.
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

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

    ЗЫ: эта инфа легко нахлдится в гугле! позор таким кодерам, которые гуглем не умеют пользоваться!
     
  4. BTr_CAT

    BTr_CAT New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    4
    Здравствуйте форумчане!
    Склепал на фасме заготовку диалогового окна с кнопками , хотелось бы для "живости" поместить на небольшом его участке картинку ,загружать желательно из файла ресурсов - проблема в том что я не имею представления как в этом файле ее описать ) и соответственно загрузить . Хотелось бы взглянуть на листинг подобного файла...
    И еще , как в файле .rc разграничить описание обьектов ( манифеста ,иконок , меню и тд) и задать шрифт текста кнопок и заголовка?
    Переглядел в рестораторе кучу res файлов , там шрифт текста в диалогах и меню вразумительно обьявлен .

    Ну например...

    Данные ресурса в файле до компиляции:

    Код (Text):
    1. section '.rsrc' resource data readable
    2. directory RT_DIALOG,dialogs
    3. resource dialogs,1,LANG_RUSSIAN+SUBLANG_DEFAULT,mydialog
    4.  dialog mydialog,'БААА!',170,70,167,68,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME+DS_CENTER
    5.   dialogitem 'BUTTON','МАША', 100, 3, 19, 61, 15,  BS_PUSHBUTTON+WS_CHILD+WS_VISIBLE+WS_TABSTOP
    6.   dialogitem 'BUTTON','ПОЕХАЛИ', 101, 3, 34, 61, 15,  BS_PUSHBUTTON+WS_CHILD+WS_VISIBLE+WS_TABSTOP
    7.   dialogitem 'BUTTON','КО МНЕ', 102, 3, 49, 61, 15, BS_DEFPUSHBUTTON+WS_CHILD+WS_VISIBLE+WS_TABSTOP
    8.   dialogitem 'EDIT','y', 103,3, 4, 61, 15, ES_LEFT+ES_UPPERCASE+WS_CHILD+WS_VISIBLE+WS_BORDER +WS_TABSTOP
    9.  enddialog
    Описание диалога изьятого после компиляции (rc файл):

    Код (Text):
    1. 1 DIALOG 170, 70, 167, 68
    2. STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
    3. CAPTION "БААА!"
    4. FONT 8, "MS Sans Serif"
    5. {
    6.  PUSHBUTTON "МАША", 100, 3, 19, 61, 15, WS_POPUP | NOT WS_CHILD
    7.  PUSHBUTTON "ПОЕХАЛИ", 101, 3, 34, 61, 15, WS_POPUP | NOT WS_CHILD
    8.  DEFPUSHBUTTON "КО МНЕ", 102, 3, 49, 61, 15, WS_POPUP | NOT WS_CHILD | WS_GROUP
    9.  EDITTEXT 103, 3, 4, 61, 15, ES_UPPERCASE | WS_POPUP | NOT WS_CHILD
    10. }
    Берется шрифт по умолчанию ...
    Однако как обьявить другой шрифт при написании исходника ума не приложу...

    Заранее спасибо.
     
  5. BTr_CAT

    BTr_CAT New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    4
    Уффф...
    C ресурсами разобрался, однакож по выводу картинки на участок диалогового окна прояснений не наблюдается .

    Народ я конечно понимаю что сия проблема для вас не интересна , но может кто ( из чисто альтруистических соображений :)) выложит исходник (FASM) простецкого диалогового окна c иконкой приложения в заголовке да картинкой с боку .
    Я б его поковырял да прояснил для себя , да и вас бы не напрягал . A?
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    BTr_CAT
    c иконкой приложения в заголовке
    Например, Рихтер делает это кодом, а не в ресурсах
    Код (Text):
    1. // Sets the dialog box icons
    2. inline void chSETDLGICONS(HWND hwnd, int idi) {
    3.    SendMessage(hwnd, WM_SETICON, TRUE,  (LPARAM)
    4.       LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
    5.          MAKEINTRESOURCE(idi)));
    6.    SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)
    7.       LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
    8.       MAKEINTRESOURCE(idi)));
    9. }
     
  7. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >да картинкой с боку

    #1: LoadImage + Static/SS_BITMAP,SS_ICON + Send*Message/STM_SETIMAGE
    #2: WM_PAINT -> BitBlt
    #3:
     
  8. BTr_CAT

    BTr_CAT New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    4
    Спасибо за участие .
    Возможно ли закинуть иконку в заголовок так как это делается в обычном пользовательском окне , то есть по типу :

    Код (Text):
    1. wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE +1,NULL,_class; как обьявлять   в случае диалогбокса?
    2.  
    3.   msg MSG; наверное нет надобности )
    4.  
    5. section '.code' code readable executable
    6.  
    7.   start:
    8.  
    9.     invoke  GetModuleHandle,0
    10.     mov [wc.hInstance],eax ; кидаем содержимое регистра в область памяти где сидит хендл???
    11.     invoke  LoadIcon,0,IDI_APPLICATION; иконка заголовка = иконка приложения
    12.     mov [wc.hIcon],eax
    13.     invoke  LoadCursor,0,IDC_ARROW ; курсор собственно не
    14.     mov [wc.hCursor],eax            ; нужен
    15.     invoke  RegisterClass,wc             ; зарегерили  ежели обьявили
    16.     test    eax,eax                          
    17.     jz  hehehe
    18.  
    19.     invoke  CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,256,NULL,NULL,[wc.hInstance],NULL;
    20. тупо вызывать диалогбоксА?  
    21.     test    eax,eax
    22.     jz       hehehe
    На ляпы и мои нелепые измышлизмы бурно по возможности не реагируйте)
    Я раньше изучал Вижал Бесик , но учеба на заочке, работа и армия сделали свое дело - я теперь просто чайник .
    Компьютер прикупил , решил поднять оставшиеся знания ( наивный ) - а поднимать то и нечего)))
     
  9. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >да картинкой с боку

    #3: .rc - см. аттач
     
  10. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    вот лови. когда-то это был кейген для wrar. функциональность убрал, оставил только GUI для тебя. написано на MASM.
     
  11. BTr_CAT

    BTr_CAT New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    4
    Спасибо за внимание народ , буду разбиратся
     
  12. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    RamMerLabs
    error A2006: undefined symbol : GdiTransparentBlt
     
  13. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    zet
    Можно заменить на вызов TransparentBlt. Разумеется добавить msimg32.inc и msimg32.lib.
     
Статус темы:
Закрыта.