Для использования собственной иконки нужно создать файл ресурса:


-->Begin icon.rc <--



  ICON_1 ICON 180.ico

  ICON_SM ICON 163.ico



-->End of icon.rc<--

Затем icon.rc откомпилировать с помощью какого-нибудь компилятора ресурсов(res-файл должен быть 32-bit Windows compatible). Возьмем brcc32.exe:


  brcc32 icon.rc
Получим icon.res - понадобится при линковании.


WNDCLASSEX struct

  clSize           dword    ?

  clStyle          dword    ?

  clLpfnWndProc    dword    ?

  clCbClsExtra     dword    ?

  clCbWndExtra     dword    ?

  clHInstance      dword    ?

  clHIcon          dword    ?

  clHCursor        dword    ?

  clHbrBackground  dword    ?

  clLpszMenuName   dword    ?

  clLpszClassName  dword    ?

  clHIconSm        dword    ?

WNDCLASSEX ends

clHIcon: Содержит дискриптор иконки получаемый после вызова LoadIcon.
clHIconSm: Тоже самое для маленькой иконки, если null то используется hIcon.


--------------------------------------------------

.data

  szIconName       db 'ICON_1', 0

  szIconSmName     db 'ICON_SM', 0

  ...

--------------------------------------------------

.code

  ...

  push    offset szIconName

  push    [hInst]

  call    LoadIconA

  mov     [wc.clHIcon], eax



  push    offset szIconSmName

  push    [hInst]

  call    LoadIconA

  mov     [wc.clHIconSm], eax

  ...

  регистируем класс, создаем окно...

---------------------------------------------------

При линковании нужно указать файл ресурса:


  tlink32 [options] my.obj,my.exe,,,,my.res

Полный текст программы: cr_icon.zip

Используются технологии uCoz