《windows环境下32位汇编语言程序设计》

下载本书

添加书签

windows环境下32位汇编语言程序设计- 第52节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
                   。386

                   。model flat; stdcall

                   option casemap :none

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; Include 文件定义

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

include            windows。inc‘

include            user32。inc

includelib         user32。lib

include            kernel32。inc

includelib         kernel32。lib

include            dlg32。inc

includelib         dlg32。lib

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; Equ 等值定义

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

ICO_MAIN           equ  1000

DLG_MAIN           equ  1000

IDM_MAIN           equ  1000

IDM_OPEN           equ  1101

IDM_SAVEAS         equ  1102

IDM_PAGESETUP      equ  1103

IDM_EXIT           equ  1104

IDM_FIND           equ  1201

IDM_REPLACE        equ  1202

IDM_SELFONT        equ  1203

IDM_SELCOLOR       equ  1204

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 数据段

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

                           。data?

hInstance          dd        ?

hWinMain           dd        ?

dwFontColor        dd        ?

dwBackColor        dd        ?

dwCustColors       dd        16 dup (?)

stLogFont          LOGFONT          

szFileName         db        MAX_PATH dup (?)

szBuffer           db        1024 dup (?)

;********************************************************************

; 查找替换对话框使用

;********************************************************************

idFindMessage      dd      ?

stFind             FINDREPLACE      

szFindText         db      100   dup (?)

szReplaceText      db      100   dup (?)

                   nst

FINDMSGSTRING      db      'mdlg_FindReplace';0

szSaveCaption      db      '请输入保存的文件名';0

szFormatColor      db      '您选择的颜色值:%08x';0

szFormatFont       db      '您的选择:';0dh;0ah;'字体名称:%s';0dh;0ah

                   db      '字体颜色值:%08x,字体大小:%d';0

szFormatFind       db      '您按下了“%s”按钮';0dh;0ah;'查找字符串:%s';0dh;0ah

                   db      '替换字符串:%s';0

szFormatPrt        db      '您选择的打印机:%s';0

szCaption          db      '执行结果';0

szFindNext         db      '查找下一个';0

szReplace          db      '替换';0

szReplaceAll       db      '全部替换';0

szFilter           db      'Text Files(*。txt)';0;'*。txt';0

                   db      'All Files(*。*)';0;'*。*';0;0

szDefExt           db      'txt';0

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 代码段

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

                   de

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 页面设置对话框

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_PageSetup         proc

                   local   @stPS:PAGESETUPDLG

 



 
来源:电子工业出版社 作者:罗云彬 上一页         回书目         下一页          
上一页         回书目         下一页          
  


第8章 通用对话框


8。1 通用对话框简介(2)

    
                   invoke RtlZeroMemory;addr @stPS;sizeof @stPS

                   mov    @stPS。lStructSize;sizeof @stPS

                   push   hWinMain

                   pop    @stPS。hwndOwner

                   invoke PageSetupDlg;addr @stPS

                   。if    eax && @stPS。hDevMode

                          mov   eax;@stPS。hDevMode

                          mov   eax;'eax'

                          invoke wsprintf;addr szBuffer;addr szFormatPrt;eax

                          invoke MessageBox;hWinMain;addr szBuffer;

                                addr szCaption;MB_OK

                   。endif

                   ret

 

_PageSetup         endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 显示“保存”文件对话框

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_SaveAs            proc

                   local  @stOF:OPENFILENAME

 

                   invoke RtlZeroMemory;addr @stOF;sizeof @stOF

                   mov    @stOF。lStructSize;sizeof @stOF

                   push   hWinMain

                   pop    @stOF。hwndOwner

                   mov    @stOF。lpstrFilter;offset szFilter

                   mov    @stOF。lpstrFile;offset szFileName

                   mov    @stOF。nMaxFile;MAX_PATH

                   mov    @stOF。Flags;OFN_PATHMUSTEXIST

                   mov    @stOF。lpstrDefExt;offset szDefExt

                   mov    @stOF。lpstrTitle;offset szSaveCaption

                   invoke GetSaveFileName;addr @stOF

                   。if    eax

                          invoke   MessageBox;hWinMain;addr szFileName;

                                  addr szCaption;MB_OK

                   。endif

                   ret

 

_SaveAs            endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 显示“打开”文件对话框

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_OpenFile          proc

                   local  @stOF:OPENFILENAME

 

                   invoke RtlZeroMemory;addr @stOF;sizeof @stOF

                   mov    @stOF。lStructSize;sizeof @stOF

                   push   hWinMain

                   pop    @stOF。hwndOwner

                   mov    @stOF。lpstrFilter;offset szFilter

                   mov    @stOF。lpstrFile;offset szFileName

                   mov    @stOF。nMaxFile;MAX_PATH

                   mov    @stOF。Flags;OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST

                   invoke GetOpenFileName;addr @stOF

                   。if    eax

                          invoke    MessageBox;hWinMain;addr szFileName;

                                    addr szCaption;MB_OK

                   。endif

                   ret

 

_OpenFile          endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 选择颜色

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_ChooseColor       proc

                   local  @stCC:CHOOSECOLOR

 

                   invoke RtlZeroMemory;addr @stCC;sizeof @stCC

                   mov    @stCC。lStructSize;sizeof @stCC

                   push   hWinMain

                   pop    @stCC。hwndOwner

                   push   dwBackColor

                   pop    @stCC。rgbResult

                   mov    @stCC。Flags;CC_RGBINIT or CC_FULLOPEN

                   mov    @stCC。lpCustColors;offset dwCustColors

                   invoke ChooseColor;addr @stCC

                   。if    eax

                          push  @stCC。rgbResult

                          pop   dwBackColor

                           invoke  wsprintf;addr szBuffer;addr szFormatColor;

                                dwBackColor

                          invoke MessageBox;hWinMain;addr szBuffer;

                                addr szCaption;MB_OK

                   。endif

                   ret

 

_ChooseColor       endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 选择字体

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_ChooseFont        proc

                   local  @stCF:CHOOSEFONT

 

                   invoke RtlZeroMemory;addr @stCF;sizeof @stCF

                   mov    @stCF。lStructSize;sizeof @stCF

                   push   hWinMain

                   pop    @stCF。hwndOwner

                   mov    @stCF。lpLogFont;offset stLogFont

                   push   dwFontColor

                   pop    @stCF。rgbColors

                   mov     @stCF。Flags;CF_SCREENFONTS or CF_INITTOLOGFONTSTRUCT

                          or CF_EFFECTS

                   invoke ChooseFont;addr @stCF

                   。if    eax

                          push  @stCF。rgbColors

        
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架