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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

用RadASM 开发窗口程序

發布時間:2025/4/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用RadASM 开发窗口程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


用RadASM新建一個項目;選擇Win32exe模板;


一 在窗體上輸出文字

在.data區添加

szText db '小狗狗,小兔兔,小貓貓 !',0

在WM_PAINT消息處理段中添加

invoke BeginPaint,hWnd,addr @stPs
mov @hDc,eax

invoke GetClientRect,hWnd,addr @stRect
invoke DrawText,@hDc,addr szText,-1,\
addr @stRect,\
DT_SINGLELINE or DT_CENTER or DT_VCENTER
invoke EndPaint,hWnd,addr @stPs


實現在窗體上輸出文字;


二 獲取Windows目錄和系統目錄并在窗體上輸出

在.data?段添加
bufferw db 50 dup(?)
? ?buffers db 50 dup(?)
在WM_CREATE消息處理段添加,
invoke GetWindowsDirectory, addr bufferw, sizeof bufferw ; 置Windows目錄于緩沖區中
invoke GetSystemDirectory, addr buffers, sizeof buffers ;置系統目錄于緩沖區中

在WM_PAINT消息處理段添加,
invoke DrawText,@hDc,addr bufferw,-1,\
addr @stRect,\
DT_SINGLELINE or DT_VCENTER or DT_LEFT

invoke DrawText,@hDc,addr buffers,-1,\
addr @stRect,\
DT_SINGLELINE or DT_VCENTER or DT_RIGHT


三 在窗體上畫圓

添加一個畫圓過程circle,代碼見后; 在WM_PAINT消息處理段添加, invoke ?circle,hWnd,00E5C27Fh,10,10,50,50

效果;


代碼: windemo1.asm
.586 .model flat,stdcall option casemap:noneinclude windows.incinclude user32.incinclude kernel32.incinclude gdi32.incincludelib user32.libincludelib kernel32.libincludelib gdi32.libWinMain proto :DWORD,:DWORD,:DWORD,:DWORD.dataClassName db "MainWinClass",0AppName db "Main Window",0szText db '小狗狗,小兔兔,小貓貓 !',0hCap db "WindowsDirectory",0.data?hInstance HINSTANCE ?CommandLine LPSTR ?bufferw db 50 dup(?)buffers db 50 dup(?).code; ---------------------------------------------------------------------------circle proc hndl:DWORD,colr:DWORD,tx:DWORD,ty:DWORD,lx:DWORD,ly:DWORDLOCAL hDC :DWORDLOCAL hPen :DWORDLOCAL hPenOld :DWORDinvoke GetDC,hndlmov hDC, eaxinvoke CreatePen,0,3,colrmov hPen, eaxinvoke SelectObject,hDC,hPenmov hPenOld, eaxinvoke Arc,hDC,tx,ty,lx,ly,0,0,0,0invoke SelectObject,hDC,hPenOldinvoke DeleteObject,hPenretcircle endpstart:invoke GetModuleHandle, NULLmov hInstance,eaxinvoke GetCommandLinemov CommandLine,eaxinvoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULTinvoke ExitProcess,eaxWinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORDLOCAL wc:WNDCLASSEXLOCAL msg:MSGLOCAL hwnd:HWNDmov wc.cbSize,SIZEOF WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAWmov wc.lpfnWndProc, OFFSET WndProcmov wc.cbClsExtra,NULLmov wc.cbWndExtra,NULLpush hInstancepop wc.hInstancemov wc.hbrBackground,COLOR_BTNFACE+1mov wc.lpszMenuName,NULLmov wc.lpszClassName,OFFSET ClassNameinvoke LoadIcon,NULL,IDI_APPLICATIONmov wc.hIcon,eaxmov wc.hIconSm,eaxinvoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor,eaxinvoke RegisterClassEx, addr wcINVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\CW_USEDEFAULT,300,200,NULL,NULL,\hInst,NULLmov hwnd,eaxinvoke ShowWindow, hwnd,SW_SHOWNORMALinvoke UpdateWindow, hwnd.WHILE TRUEinvoke GetMessage, ADDR msg,NULL,0,0.BREAK .IF (!eax)invoke TranslateMessage, ADDR msginvoke DispatchMessage, ADDR msg.ENDWmov eax,msg.wParamret WinMain endpWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAMlocal @stPs:PAINTSTRUCTlocal @stRect:RECTlocal @hDc.IF uMsg==WM_DESTROYinvoke PostQuitMessage,NULL.ELSEIF uMsg==WM_CREATEinvoke GetWindowsDirectory, addr bufferw, sizeof bufferw ; 置Windows目錄于緩沖區中invoke GetSystemDirectory, addr buffers, sizeof buffers ;置系統目錄于緩沖區中.ELSEIF uMsg == WM_PAINTinvoke BeginPaint,hWnd,addr @stPsmov @hDc,eaxinvoke GetClientRect,hWnd,addr @stRectinvoke DrawText,@hDc,addr szText,-1,\addr @stRect,\DT_SINGLELINE or DT_CENTER or DT_VCENTERinvoke DrawText,@hDc,addr bufferw,-1,\addr @stRect,\DT_SINGLELINE or DT_VCENTER or DT_LEFTinvoke DrawText,@hDc,addr buffers,-1,\addr @stRect,\DT_SINGLELINE or DT_VCENTER or DT_RIGHTinvoke circle,hWnd,00E5C27Fh,10,10,50,50invoke EndPaint,hWnd,addr @stPs.ELSEinvoke DefWindowProc,hWnd,uMsg,wParam,lParam ret.ENDIFxor eax,eaxret WndProc endpend start







《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的用RadASM 开发窗口程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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