⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpicker.asm

📁 这是一个数字图像处理的matlab仿真程序
💻 ASM
字号:
; #########################################################################

    .386
    .model flat, stdcall
    option casemap :none   ; case sensitive

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

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\masm32.inc
    include \masm32\include\shell32.inc
    include \masm32\include\comdlg32.inc

    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\shell32.lib
    includelib \masm32\lib\comdlg32.lib

    clearbuffer PROTO :DWORD

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

        ;=============
        ; Local macros
        ;=============
  
        szText MACRO Name, Text:VARARG
          LOCAL lbl
            jmp lbl
              Name db Text,0
            lbl:
          ENDM
          
        ;=================
        ; Local prototypes
        ;=================
        WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
        
    .data
        hButn1      dd 0
        hButn2      dd 0
        hButn3      dd 0
        hButn4      dd 0
        hButn5      dd 0
        hButn6      dd 0

        hEdit1      dd 0
        hEdit2      dd 0
        hEdit3      dd 0

        hInstance   dd 0
        hIconImage  dd 0
        hIcon       dd 0
        dlgname     db "COLORREF Color Picker",0

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

    .code

start:

      invoke GetModuleHandle, NULL
      mov hInstance, eax
      
      ; -------------------------------------------
      ; Call the dialog box stored in resource file
      ; -------------------------------------------
      invoke DialogBoxParam,hInstance,100,0,ADDR WndProc,0

      invoke ExitProcess,eax

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

WndProc proc hWin   :DWORD,
             uMsg   :DWORD,
             wParam :DWORD,
             lParam :DWORD

      LOCAL color :DWORD
      LOCAL Ps :PAINTSTRUCT
      LOCAL buffer1[128]:BYTE
      LOCAL buffer2[128]:BYTE

      .if uMsg == WM_INITDIALOG
      
        szText dlgTitle," COLORREF Color Picker"
        invoke SendMessage,hWin,WM_SETTEXT,0,ADDR dlgTitle

        invoke LoadIcon,hInstance,1
        mov hIcon, eax

        invoke SendMessage,hWin,WM_SETICON,1,hIcon

        invoke GetDlgItem,hWin,104
        mov hEdit1, eax

        invoke GetDlgItem,hWin,105
        mov hEdit2, eax

        invoke GetDlgItem,hWin,106
        mov hEdit3, eax

        invoke GetDlgItem,hWin,101  ; save asm
        mov hButn1, eax

        invoke GetDlgItem,hWin,102  ; save basic
        mov hButn2, eax

        invoke GetDlgItem,hWin,103  ; save C/C++
        mov hButn3, eax

        invoke GetDlgItem,hWin,111  ; pick colour
        mov hButn4, eax

        invoke GetDlgItem,hWin,112  ; about
        mov hButn5, eax

        invoke GetDlgItem,hWin,113  ; exit
        mov hButn6, eax

        xor eax, eax
        ret

      .elseif uMsg == WM_COMMAND
        .if wParam == 111
          invoke ColorDialog,hWin,hInstance,0   ; CC_FULLOPEN
          mov color, eax

          szText szh,"h"
          szText baz,"&H"
          szText cpp,"0x"

          invoke clearbuffer, ADDR buffer1
          invoke clearbuffer, ADDR buffer2

          invoke dw2hex, color, ADDR buffer2
          invoke szCatStr,ADDR buffer1,ADDR buffer2
          invoke szCatStr,ADDR buffer1,ADDR szh
          invoke SetWindowText,hEdit1,ADDR buffer1

          invoke clearbuffer, ADDR buffer1
          invoke szCatStr,ADDR buffer1,ADDR baz
          invoke szCatStr,ADDR buffer1,ADDR buffer2
          invoke SetWindowText,hEdit2,ADDR buffer1

          invoke clearbuffer, ADDR buffer1
          invoke szCatStr,ADDR buffer1,ADDR cpp
          invoke szCatStr,ADDR buffer1,ADDR buffer2
          invoke SetWindowText,hEdit3,ADDR buffer1

        .elseif wParam == 112
          szText AboutMsg,"COLORREF Color Picker",13,10,\
          "Copyright 

⌨️ 快捷键说明

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