友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
次次小说 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

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

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




                   。if    eax

                          push  @stCF。rgbColors

                          pop   dwFontColor

                          mov   eax;@stCF。iPointSize

                          shl   eax;1

                              invoke  wsprintf;addr szBuffer;addr szFormatFont;

                                addr stLogFont。lfFaceName;

                                dwFontColor;eax

                          invoke MessageBox;hWinMain;addr szBuffer;

                                addr szCaption;MB_OK

                   。endif

                   ret

 

_ChooseFont        endp

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

_ProcDlgMain       proc    uses ebx edi esi hWnd;wMsg;wParam;lParam

                   local   @szBuffer'128':byte

 

                   mov     eax;wMsg

                   。if     eax    WM_CLOSE

                           invoke   EndDialog;hWnd;NULL

                   。elseif eax    WM_INITDIALOG

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

; 注册“查找”对话框消息,初始化“查找”对话框的结构

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

                          mov   eax;hWnd

                          mov   hWinMain;eax

                          mov   stFind。hwndOwner;eax

                          mov   stFind。lStructSize;sizeof stFind



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


第8章 通用对话框


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

    
                       mov      stFind。Flags;FR_DOWN

                       mov        stFind。lpstrFindWhat;offset szFindText

                       mov      stFind。wFindWhatLen;sizeof szFindText

                         mov       stFind。lpstrReplaceWith;offset szReplaceText

                           mov        stFind。wReplaceWithLen;sizeof szReplaceText

                       invoke     RegisterWindowMessage;addr FINDMSGSTRING

                       mov      idFindMessage;eax

               。elseif eax    WM_MAND

                       mov      eax;wParam

                       。if      ax    IDM_EXIT

                                invoke  EndDialog;hWnd;NULL

                       。elseif  ax    IDM_OPEN

                                invoke  _OpenFile

                       。elseif  ax    IDM_SAVEAS

                                invoke  _SaveAs

                       。elseif  ax    IDM_PAGESETUP

                                invoke  _PageSetup

                       。elseif  ax    IDM_FIND

                                and     stFind。Flags;not FR_DIALOGTERM

                                invoke  FindText;addr stFind

                       。elseif  ax    IDM_REPLACE

                                and     stFind。Flags;not FR_DIALOGTERM

                                invoke  ReplaceText;addr stFind

                       。elseif  ax    IDM_SELFONT

                                invoke  _ChooseFont

                       。elseif  ax    IDM_SELCOLOR

                                invoke  _ChooseColor

                       。endif

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

               。elseif eax    idFindMessage

                       xor      ecx;ecx

                       。if      stFind。Flags & FR_FINDNEXT

                                mov     ecx;offset szFindNext

                       。elseif  stFind。Flags & FR_REPLACE

                                mov     ecx;offset szReplace

                       。elseif  stFind。Flags & FR_REPLACEALL

                                mov     ecx;offset szReplaceAll

                       。endif

                       。if      ecx

                                invoke wsprintf;addr szBuffer;

                                        addr szFormatFind;

                                        ecx;addr szFindText;addr szReplaceText

                                invoke  MessageBox;hWinMain;addr szBuffer;

                                        addr szCaption;MB_OK

                   。endif

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

               。else

                      mov       eax;FALSE

                      ret

               。endif

               mov    eax;TRUE

               ret

 

_ProcDlgMain   endp

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

start:

               invoke  GetModuleHandle;NULL

               mov     hInstance;eax

               invoke  DialogBoxParam;hInstance;DLG_MAIN;NULL;

                       offset _ProcDlgMain;NULL

               invoke  ExitProcess;NULL

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

               end     start

资源脚本文件mDlg。rc的内容如下:

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#include                  

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#define            ICO_MAIN     1000

#define            DLG_MAIN     1000

#define            IDM_MAIN     1000

#define            IDM_OPEN     1101

#define            IDM_SAVEAS   1102

#define            IDM_PAGESETUP 1103

#define            IDM_EXIT     1104

#define            IDM_FIND     1201

#define            IDM_REPLACE  1202

#define            IDM_SELFONT  1203

#define            IDM_SELCOLOR 1204

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

ICO_MAIN           ICON     〃Main。ico〃

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

DLG_MAIN DIALOG 193; 180; 310; 134

MENU IDM_MAIN

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 

WS_SYSMENU | WS_THICKFRAME

CAPTION 〃通用对话框示例〃

FONT 9; 〃宋体〃

{

}

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

IDM_MAIN           menu   discardable

BEGIN

                   popup  〃文件(&F)〃

                   BEGIN

                          menuitem  〃打开文件(&O)。。。〃;   IDM_OPEN

                          menuitem  〃文件另存为(&C)。。。〃;IDM_SAVEAS

                          menuitem  separator

                          menuitem  〃页面设置(&P)。。。〃;IDM_PAGESETUP

                          menuitem  separator

                          menuitem  〃退出(&X)〃;      IDM_EXIT

                   END

                   popup  〃查看(&V)〃

                   BEGIN

                          menuitem  〃查找字符串(&S)。。。〃;IDM_FIND

                          menuitem  〃替换字符串(&R)。。。〃;IDM_REPLACE

                          menuitem  separator

                          menuitem  〃选择字体(&F)。。。〃;IDM_SELFONT

                          menuitem  〃选择颜色(&B)。。。〃;IDM_SELCOLOR

                   END

END

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

在资源脚本文件中定义了一个对话框用做主窗口,同时定义了一个菜单用来选择各种通用对话框。下面结合这个例子说明各种通用对话框的用法。



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


第8章 通用对话框


8。2 使用通用对话框(1)

    
8。2。1  “打开”文件和“保存”文件对话框

“打开”文件和“保存”文件的对话框大概是读者最熟悉的,如图8。1所示。由于Windows操作系统随着版本的升级会对用户界面的风格做一些调整,不同版本的dlg32。dll库文件也随之改变,但不管主流的用户界面如何改变,对程序员来说,编程的接口是不会变的,从Windows 95到Windows XP,通用对话框函数的使用方式并没有什么不同。

显示“打开”文件对话框的函数是GetOpenFileName,显示“保存”文件对话框的函数是GetSaveFileName。这两个对话框可以让用户选择驱动器、目录以及一个文件名(打开文件对话框还允许选择多个文件),但这两个对话框并不对文件进行任何操作,也就是说,它们仅给用户提供一个统一的界面来“选择”文件名,获取文件名以后,对文件的打开、读写等操作还需要程序自己解决。

这两个函数的语法是:

invoke  GetOpenFileName,lpofn      ;显示打开文件对话框

invoke  GetSaveFileName�
返回目录 上一页 下一页 回到顶部 赞(0) 踩(0)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!