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

下载本书

添加书签

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


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

当选中IDM_BIG和IDM_DETAIL之间的菜单项的时候,程序用CheckMenuRadioItem将原先IDM_BIG和IDM_DETAIL范围内的互斥选定撤销并将当前选定的菜单项加圆点标记。

。elseif  eax 》=  IDM_BIG && eax 》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#include           

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

#define   ICO_BIG            Ox1000

#define   ICO_SMALL          Ox1001

#define   CUR_2               Ox1000

#define   IDM_MAIN                Ox2000

#define   IDM_EXIT                Ox2101

#define   IDM_BIG             Ox2201

#define   IDM_SMALL          Ox2202

#define   IDM_CUR1                Ox2203

#define   IDM_CUR2                Ox2204

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

ICO_SMALL          ICON       〃Small。ico〃

ICO_BIG            ICON       〃Big。ico〃

CUR_2              CURSOR     〃2。cur〃

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

IDM_MAIN  menu     discardable

BEGIN

          popup    〃文件(&F)〃

          BEGIN

                   menuitem   〃退出(&X)〃;     IDM_EXIT

          END

          popup    〃图标和光标(&I)〃

          BEGIN

                   menuitem   〃大图标(&G)〃;   IDM_BIG

                   menuitem   〃小图标(&M)〃;   IDM_SMALL

                   menuitem   separator

                   menuitem   〃光标A(&A)〃;   IDM_CUR1

                   menuitem   〃光标B(&B)〃;   IDM_CUR2

          END

END

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

经过上一节的“洗礼”,读者对菜单的定义应该很熟悉了,这里就不再说明IDM_MAIN的定义了,脚本文件中定义了ICO_SMALL,ICO_BIG两套图标和CUR_2静态光标,磁盘上还有个动态光标文件1。ani。

Icon。asm的大部分是窗口模板程序的内容,和FirstWindow。asm是相同的,仅在窗口过程的WM_CREATE和WM_MAND增加了一些内容:

                       nst

szCursorFile  db      '1。ani';0

                       de

                       …

              。if     eax   WM_CREATE

                       invoke  LoadIcon;hInstance;ICO_BIG

                       mov     hIcoBig;eax

                       invoke  LoadIcon;hInstance;ICO_SMALL

                       mov     hIcoSmall;eax

                       invoke  LoadCursorFromFile;addr szCursorFile

                       mov     hCur1;eax

                      invoke  LoadCursor;hInstance;CUR_2

                       mov     hCur2;eax

                       invoke  SendMessage;hWnd;WM_MAND;IDM_BIG;NULL

                      invoke  SendMessage;hWnd;WM_MAND;IDM_CUR1;NULL

              。elseif eax   WM_MAND

                       mov     eax;wParam

                      movzx   eax;ax

                       。if     eax     IDM_EXIT

                              call  _Quit

                      。elseif eax     IDM_BIG

                               invoke    SendMessage;hWnd;WM_SETICON;ICON_BIG;hIcoBig

                              invoke    CheckMenuRadioItem;hMenu;

                                IDM_BIG;IDM_SMALL;IDM_BIG;MF_BYMAND

                      。elseif eax     IDM_SMALL

                              invoke    SendMessage;hWnd;

                                WM_SETICON;ICON_BIG;hIcoSmall

                              invoke    CheckMenuRadioItem;hMenu;

                                IDM_BIG;IDM_SMALL;IDM_SMALL;MF_BYMAND

                      。elseif eax     IDM_CUR1

                              invoke    SetClassLong;hWnd;GCL_HCURSOR;hCur1

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