Win32汇编获取和设置文本框的内容
生活随笔
收集整理的這篇文章主要介紹了
Win32汇编获取和设置文本框的内容
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看一下Win32匯編如何獲取和設置文本框的內容;
資源文件如下;
#include <resource.h>#define ICO_MAIN 0x1000 //圖標 #define DLG_MAIN 1 #define IDC_TXT1 2001 #define IDC_TXT2 2002ICO_MAIN ICON "Main.ico"DLG_MAIN DIALOG 350, 250, 120, 150 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "對話框demo模板" FONT 9, "宋體" {EDITTEXT IDC_TXT1, 5, 15, 100, 25, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOPEDITTEXT IDC_TXT2, 5, 60, 100, 25, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOPDEFPUSHBUTTON "獲取并設置", IDOK, 58, 125, 50, 14CONTROL "", -1, "Static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 6, 110, 103, 1 }? ? 在資源文件中,定義對話框;定義2個文本框,標識分別是IDC_TXT1,IDC_TXT2;?
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; by bobo ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.386.model flat, stdcalloption casemap :none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Equ 等值定義 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ICO_MAIN equ 1000h ;圖標 DLG_MAIN equ 1 IDC_TXT1 equ 2001 IDC_TXT2 equ 2002 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.data? hInstance dd ? sztxt1 db 1024 dup (?) ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.code ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParammov eax,wMsg.if eax == WM_CLOSEinvoke EndDialog,hWnd,NULL.elseif eax == WM_INITDIALOGinvoke LoadIcon,hInstance,ICO_MAINinvoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax.elseif eax == WM_COMMANDmov eax,wParam.if ax == IDOK;invoke EndDialog,hWnd,NULLinvoke GetDlgItemText,hWnd,IDC_TXT1,addr sztxt1,sizeof sztxt1invoke SetDlgItemText,hWnd,IDC_TXT2,addr sztxt1.endif.elsemov eax,FALSEret.endifmov eax,TRUEret_ProcDlgMain endp ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start:invoke GetModuleHandle,NULLmov hInstance,eaxinvoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULLinvoke ExitProcess,NULL ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end startasm代碼中,在 .data? 段,用dup定義一個db類型的區域;
? ? ? ? sztxt1?? ??? ?db?? ?1024 dup (?)?
在按下按鈕的消息處理分支?.if?? ?ax == IDOK 里面,調用?GetDlgItemText 和?SetDlgItemText,獲取第一個文本框的值,設置為第二個文本框的值;
獲取到第一個文本框的值是存在 sztxt1 里,然后用 sztxt1 的值去設置第二個文本框的內容; sztxt1前面加addr;
? ? ? ??invoke?? ?GetDlgItemText,hWnd,IDC_TXT1,addr sztxt1,sizeof sztxt1
? ? ? ? invoke?? ?SetDlgItemText,hWnd,IDC_TXT2,addr sztxt1
編譯和構建的過程如下;
構建以后的文件;?
?
可參閱此?
? ? ? ??https://blog.csdn.net/bcbobo21cn/article/details/104188812
運行一下,如下;
?
總結
以上是生活随笔為你收集整理的Win32汇编获取和设置文本框的内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NASM汇编helloworld图解
- 下一篇: SQL全表扫描