鱼C论坛

 找回密码
 立即注册
查看: 1999|回复: 3

用RadASM编译win32程序,我想加一个图标,为何没有反应!

[复制链接]
发表于 2013-5-30 02:05:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 属専色灰 于 2013-6-17 22:23 编辑

为何我应用程序的左上角木有图标??还有,就算我把这个大头的脸图标从工程目录移除,可是编译出来的程序他还是大头的脸
无标题.jpg
asm代码如下:
                .386
                .model        flat,stdcall
                option  casemap:none
                
include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib


ICO_BIG                equ                1000h

                .data?
hInstance        dd        ?
hWinMain        dd        ?
hIcoBig                dd        ?



;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .const
szClassName        db        'Icon and Cursor Example',0
szCursorFile        db        '1.ani',0
                .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Quit                proc

                invoke        DestroyWindow,hWinMain
                invoke        PostQuitMessage,NULL
                ret

_Quit                endp
_ProcWinMain        proc        uses ebx edi esi hWnd,uMsg,wParam,lParam

                mov        eax,uMsg
;********************************************************************
                .if        eax ==        WM_CREATE
                        invoke        LoadIcon,hInstance,ICO_BIG        
                        mov        hIcoBig,eax
                ;        invoke        SendMessage,hWnd,WM_COMMAND,ICO_BIG,NULL
                        invoke        SendMessage,hWnd,WM_SETICON,ICO_BIG,hIcoBig 
                        
                .elseif        eax ==        WM_CLOSE
                        call        _Quit
                .else
                        invoke        DefWindowProc,hWnd,uMsg,wParam,lParam
                        ret
                .endif
                xor        eax,eax
                ret

_ProcWinMain        endp
_WinMain        proc
                local        @stWndClass:WNDCLASSEX
                local        @stMsg:MSG

                invoke        GetModuleHandle,NULL
                mov        hInstance,eax
                
;********************************************************************
; 注册窗口类
;********************************************************************
                invoke        RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
                push        hInstance
                pop        @stWndClass.hInstance
                mov        @stWndClass.cbSize,sizeof WNDCLASSEX
                mov        @stWndClass.style,CS_HREDRAW or CS_VREDRAW
                mov        @stWndClass.lpfnWndProc,offset _ProcWinMain
                mov        @stWndClass.hbrBackground,COLOR_WINDOW + 1
                mov        @stWndClass.lpszClassName,offset szClassName
                invoke        RegisterClassEx,addr @stWndClass
;********************************************************************
; 建立并显示窗口
;********************************************************************
                invoke        CreateWindowEx,WS_EX_CLIENTEDGE,\
                        offset szClassName,offset szClassName,\
                        WS_OVERLAPPEDWINDOW,\
                        100,100,400,300,\
                        NULL,NULL,hInstance,NULL
                mov        hWinMain,eax
                invoke        ShowWindow,hWinMain,SW_SHOWNORMAL
                invoke        UpdateWindow,hWinMain
;********************************************************************
; 消息循环
;********************************************************************
                .while        TRUE
                        invoke        GetMessage,addr @stMsg,NULL,0,0
                        .break        .if eax        == 0
                        invoke        TranslateMessage,addr @stMsg
                        invoke        DispatchMessage,addr @stMsg
                .endw
                ret

_WinMain        endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
                call        _WinMain
                invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                end        start
rc代码如下:


#define ICO_BIG 4096
ICO_BIG ICON DISCARDABLE "Big.ico"
ID看错了!不好意思


是不是我的RC代码写错了,还是哪里有问题?? win32_ico.zip (46.82 KB, 下载次数: 2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-30 06:12:18 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-27 19:06:52 | 显示全部楼层
invoke        LoadIcon,hInstance,ICO_BIG        

42.                        mov        hIcoBig,eax

43.                ;        invoke        SendMessage,hWnd,WM_COMMAND,ICO_BIG,NULL

44.                        invoke        SendMessage,hWnd,WM_SETICON,ICO_BIG,hIcoBi
改成:
invoke  LoadIcon,hInstance,ICO_BIG
invoke  SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-28 13:24:35 | 显示全部楼层
哈哈~ID不一样~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 06:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表