汇编语言学习笔记-使用对话框

简介: rsrc.rc文件 代码 #include #define IDC_EDIT 3000 #define IDC_BUTTON 3001 #define IDC_EXIT 3002 MyDialog DIALOG 10, 10, 205, 60 STYLE 0x0004 | DS_CENT...

rsrc.rc文件

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
#include < resource.h >
#define IDC_EDIT 3000
#define IDC_BUTTON 3001
#define IDC_EXIT 3002

MyDialog DIALOG
10 , 10 , 205 , 60
STYLE
0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU
| WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION
" 我的对话框 "
{
EDITTEXT IDC_EDIT,
15 , 17 , 111 , 13 , ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON
" 显示编辑框中的内容 " , IDC_BUTTON, 141 , 10 , 52 , 13
PUSHBUTTON
" 退出程序 " , IDC_EXIT, 141 , 26 , 52 , 13
}

asm文件

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
. 386
.model flat,stdcall
option casemap:none

DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD

include D:\masm32\include\windows.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib

.data
DlgName db
' MyDialog ' , 0
AppName db
' My own dialog ' , 0


.data
?
hInstance HINSTANCE
?
buffer db
512 dup( ? )

.
const
IDC_EDIT equ
3000
IDC_BUTTON equ
3001
IDC_EXIT equ
3002


.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 GetDlgItem, hWnd,IDC_EDIT
invoke SetFocus,eax
.ELSEIF uMsg
== WM_CLOSE
invoke EndDialog, hWnd,NULL
.ELSEIF uMsg
== WM_COMMAND
mov eax,wParam
.IF eax
== IDC_BUTTON
invoke GetDlgItemText,hWnd,IDC_EDIT,ADDR buffer,
512
invoke MessageBox,NULL,ADDR buffer,ADDR AppName,MB_OK
.ELSEIF ax
== IDC_EXIT
invoke EndDialog, hWnd,NULL
.ENDIF
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start

 

目录
相关文章
MASM32编程使用自动完成功能
MASM32编程使用自动完成功能
|
6月前
|
存储 Java 程序员
汇编语言教程及实例
汇编语言教程及实例
|
7月前
|
C语言
【汇编语言实战】基础知识+函数的引用(求1+2+..+N)+OllyDBG的使用
【汇编语言实战】基础知识+函数的引用(求1+2+..+N)+OllyDBG的使用
42 1
|
IDE 编译器 开发工具
C语言学习准备-编辑器选择
本来是想给大家继续更新C语言经典案例,但是有朋友反应C语言编辑器的选择,刚好我自己也是想更换一下C语言的编辑器,跟大家分享一下之前的使用感受,以及目前新的一些感受。
125 0
C语言学习准备-编辑器选择
|
机器学习/深度学习 人工智能
LabVIEW中常用的快捷键方式大全
LabVIEW中最常用的快捷键方式大全
1831 0
|
安全 程序员 C语言
【C语言】VS编辑器实用的调试技巧
【C语言】VS编辑器实用的调试技巧
【C语言】VS编辑器实用的调试技巧
|
存储 文件存储
消息窗体的输入输出,断点调试方法【VB学习笔记2020课堂版02】
消息窗体的输入输出,断点调试方法【VB学习笔记2020课堂版02】
105 0
消息窗体的输入输出,断点调试方法【VB学习笔记2020课堂版02】
|
API C语言 C++
C语言或者C++中隐藏控制台窗口
C语言或者C++中隐藏控制台窗口
527 0