日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Win32汇编获取和设置文本框的内容

發布時間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 start

asm代碼中,在 .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汇编获取和设置文本框的内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。