RadAsm не рисуются битмапы\иконки

Тема в разделе "WASM.BEGINNERS", создана пользователем rain, 25 июл 2006.

  1. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    создаеш, значит, новый проэкт (Dialog as main), бросаеш на форму битмап, прописуеш в поле свойств путь к битмапу, цепляеш собственноручно ресурс, но он не рисуется.
    почему?
    вот этот скритп ресурсов диалога который генерит эта иде:
    Код (Text):
    1. #define IDD_DIALOG 1000
    2. #define IDC_IMG1 1001
    3. IDD_DIALOG DIALOGEX 6,6,194,106
    4. CAPTION "Dialog As Main"
    5. FONT 8,"MS Sans Serif",0,0
    6. CLASS "DLGCLASS"
    7. STYLE 0x10CF0800
    8. EXSTYLE 0x00000000
    9. BEGIN
    10.   CONTROL "..\..\..\..\..\..\masm32\test3\Res\new.ico",IDC_IMG1,"Static",0x50000203,18,24,30,32,0x00000000
    11. END
    очевидно что сам ресурс не указан здесь, сделаем это в основном rc файле:
    Код (Text):
    1. #include "Res/tempMnu.rc"
    2. #include "Res/tempDlg.rc"
    3. IDC_IMG1 ICON "D:/masm32/test3/Res/new.ico"
    теперь ресурс компилируется, размер бинарника растёт, но всё-равно иконка не отображается, т.е. диалог есть а на нём ничего короме меню нет.. самому каждый раз рисовать (т.е. в коде) битмапы лень.
    кстати как можно работать не с bmp а например с gif/jpg? как я понял в файл ресурсов его не запихнуть нельзя..
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    rain
    Вместо "..\..\..\..\..\..\masm32\test3\Res\new.ico" нужно указать IDC_IMG1. Но правильнее в коде юзать LoadImage + SendDlgItemMessage/STM_SETIMAGE
     
  3. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    так что-то я недопонимаю, меняю как ты сказал, но всё-равно не работает.
    tempDlg.Rc:
    Код (Text):
    1. #define IDD_DIALOG 1000
    2. #define IDC_IMG1 1001
    3. IDD_DIALOG DIALOGEX 6,6,194,106
    4. CAPTION "Dialog As Main"
    5. FONT 8,"MS Sans Serif",0,0
    6. CLASS "DLGCLASS"
    7. STYLE 0x10CF0800
    8. EXSTYLE 0x00000000
    9. BEGIN
    10.   CONTROL "IDC_IMG1",IDC_IMG1,"Static",0x50000203,18,24,30,32,0x00000000
    11. END
    и
    temp.rc:
    Код (Text):
    1. #include "Res/tempMnu.rc"
    2. #include "Res/tempDlg.rc"
    3. IDC_IMG1 ICON "D:/masm32/test3/Res/new.ico"
    вот =(
    пробовал:
    Код (Text):
    1. ...
    2. .if eax==WM_INITDIALOG
    3.         push    hWin
    4.         pop     hWnd
    5.         invoke LoadImage,hInstance,IDC_IMG1,IMAGE_ICON,32,32,LR_DEFAULTSIZE
    6.         invoke SendDlgItemMessage,hWnd,IDC_IMG1,STM_SETIMAGE,IMAGE_BITMAP,eax
    7. ...
    loadimage - нормально возвращает хэндл, SendDialogImage возвращает 0, и картинки всё-равно не видно =(
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    rain
    Без кавычек! Внимательнее надо быть.

    Почему IMAGE_BITMAP, если это icon?!
     
  5. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    2Quantum пасиба что помог, ещё можно "#<и номер>" для примера выше:
    CONTROL "#1001",IDC_IMG1,"Static",0x50000203,18,24,30,32,0x00000000