主页 > 电脑硬件  > 

win32汇编环境,对话框中使用菜单示例一

win32汇编环境,对话框中使用菜单示例一

;运行效果

;win32汇编环境,对话框中使用菜单示例一 ;最基本的应用,即添加菜单及点击后响应的操作方法 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .386  .model flat,stdcall  option casemap:none  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Include 文件定义 include    windows.inc  include    user32.inc  include    kernel32.inc 

includelib user32.lib  includelib kernel32.lib  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 自定义函数声明 DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 数据段 .data  DlgName    db "MyDialog",0  szMsg      db "提示",0 szMen11    db "点击了菜单:开始",0  szMen21    db "点击了菜单: 功能01",0  .data?  hInstance HINSTANCE             ?  .const  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;Equ 等值定义 ICO_MAIN    equ 1000    ;图标  

IDM_MAIN    equ    1001 IDM_011     equ 11 IDM_012     equ 12 IDM_021     equ 21 IDM_022     equ 22 IDM_023     equ 23 IDM_031     equ 31 ; 代码段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .code  start:              invoke GetModuleHandle, NULL              mov    hInstance,eax              invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL              invoke ExitProcess,eax  DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM                   .if      uMsg == WM_INITDIALOG                                          invoke    LoadIcon,hInstance,ICO_MAIN                                    invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax          .elseif    uMsg == WM_COMMAND             mov eax,wParam      ;wParam的底位字节是标识符             .if ax == IDM_011                     invoke MessageBox,NULL,addr szMen11,addr szMsg,MB_OK             .elseif ax == IDM_021                     invoke MessageBox,NULL,addr szMen21,addr szMsg,MB_OK             .elseif ax == IDM_012                     invoke EndDialog, hWnd,NULL                            .endif                                        .elseif uMsg == WM_CLOSE                                          invoke EndDialog, hWnd,NULL                  .else                                 mov eax,FALSE                                  ret                          .endif                          mov eax,TRUE                  ret  DlgProc endp 

end start 

;下面为rc文件内容 #include "resource.h"              //提示缺少该文件,可以在资源里下载

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #define ICO_MAIN 1000    //图标  #define IDM_MAIN 1001

#define    IDM_011  11 #define    IDM_012  12 #define    IDM_021  21 #define    IDM_022  22 #define    IDM_023  23 #define    IDM_031  31 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ICO_MAIN    ICON        "Main.ico"

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//定义对话框 MyDialog DIALOG 10, 10, 205, 100  STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK  CAPTION "对话框程序模版" FONT 12, "方正姚体" MENU IDM_MAIN              //将菜单条加入对话框 BEGIN

END  //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IDM_MAIN    menu     BEGIN     popup    "文件(&F)"     BEGIN         menuitem    "开始",    IDM_011         menuitem    separator           //沉底分隔条         menuitem    "退出",    IDM_012     END     popup    "命令(&C)"     BEGIN         menuitem    "功能01",    IDM_021         menuitem    "功能02",    IDM_022         menuitem    "功能03",    IDM_023     END     popup    "帮助(&H)"     BEGIN         menuitem    "帮助",    IDM_031     END END //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

标签:

win32汇编环境,对话框中使用菜单示例一由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“win32汇编环境,对话框中使用菜单示例一