win32汇编环境,对话框中使用菜单示例一
- 电脑硬件
- 2025-08-24 14:09:02

;运行效果
;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汇编环境,对话框中使用菜单示例一”