bmpbutton.asm

来自「本程序**%100汇编语言**编写。 编译器: <<-----MAS」· 汇编 代码 · 共 79 行

ASM
79
字号
BmpButton proc hParent:DWORD,a:DWORD,b:DWORD,wd:DWORD,ht:DWORD,ID:DWORD

; BmpButton PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
; invoke BmpButton,hWnd,20,20,100,25,500

    szText bmpBtnCl,"BUTTON"
    szText blnk2,0

    invoke CreateWindowEx,0,
            ADDR bmpBtnCl,ADDR blnk2,
            WS_CHILD or WS_VISIBLE or BS_BITMAP,
            a,b,wd,ht,hParent,ID,
            hInstance,NULL

    ret

BmpButton endp
; #########################################################################

SetBmpColor proc hBitmap:DWORD

    LOCAL mDC       :DWORD
    LOCAL hBrush    :DWORD
    LOCAL hOldBmp   :DWORD
    LOCAL hReturn   :DWORD
    LOCAL hOldBrush :DWORD

      invoke CreateCompatibleDC,NULL
      mov mDC,eax

      invoke SelectObject,mDC,hBitmap
      mov hOldBmp,eax

      invoke GetSysColor,COLOR_BTNFACE
      invoke CreateSolidBrush,eax
      mov hBrush,eax

      invoke SelectObject,mDC,hBrush
      mov hOldBrush,eax

      invoke GetPixel,mDC,1,1
      invoke ExtFloodFill,mDC,1,1,eax,FLOODFILLSURFACE

      invoke SelectObject,mDC,hOldBrush
      invoke DeleteObject,hBrush

      invoke SelectObject,mDC,hBitmap
      mov hReturn,eax
      invoke DeleteDC,mDC

      mov eax,hReturn

    ret

SetBmpColor endp
; #########################################################################

bmpProc proc hCtl   :DWORD,
             uMsg   :DWORD,
             wParam :DWORD,
             lParam :DWORD

     
    .if uMsg == WM_LBUTTONDOWN
        lbda:
        invoke SendMessage,hBtn4,BM_SETIMAGE,0,hBmp2
    .elseif uMsg == WM_LBUTTONUP
        lbua:
        invoke SendMessage,hBtn4,BM_SETIMAGE,0,hBmp1
    .endif

    invoke CallWindowProc,lpfnbmpProc,hCtl,uMsg,wParam,lParam

    ret

bmpProc endp

; #########################################################################

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?