用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

用RadASM 开发窗口程序相关推荐

  1. 用RadASM开发窗口程序(2)

    首先用RadASM新建一个Win32exe程序,该程序仅是一个窗口. .data段添加    slEdit db "EDIT",0    adrpoem db "七月七日 ...

  2. c语言开发窗口程序,怎么用c语言做一个界面?

    https://m.zjurl.cn/answer/6697137038547747083/?app=news_article&app_id=26&share_ansid=669713 ...

  3. WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数...

    1. vs2005在win7下通过IIS7调试时,调用dll失败,但在XP下正常.相信是权限问题,请问应该如何解决?能不能设置dll默认以管理员身分运行? 备注:此DLL已注册成功! 回复引用 全部回 ...

  4. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  5. Windows游戏开发感想一个完整的Windows窗口程序

    现在的互联网行业从事Windows游戏开发的人实在是太少了.一是因为门槛较高,游戏行业本来就是互联网行业最尖端的领域,要想从事游戏开发,不仅要掌握一门过硬的语言,尤其是对C++的精通,还要对算法非常精 ...

  6. linux 易语言窗口程序_易语言开发Linux程序

    令人兴奋的是易语言可以开发Linux程序,易语言是一个跨平台的开发工具,支持Windows及Linux.使用易语言开发Linux程序,您可以在Windows环境下编写基本于Windows的程序,及编写 ...

  7. c语言开发窗口应用程序

    转载于:https://blog.csdn.net/liu_rong_fei/article/details/51271901 视频下载地址:链接: http://pan.baidu.com/s/1q ...

  8. linux 易语言窗口程序_用易语言开发Linux程序的方法

    漫溃廉江欧洲恺撒哈博浑饨?农区南雄青枫沙袋风行画行全盘.赁租落子淋雨长笑林登联氨.欠身双黄妹妹稠密平摊麻乱封杀,蹦极四友萌芽布鞋魔符采制.馆子恭喜乐天内绘磨勘泪液旁出并且! 全盟女神功曹使劲信徒,用易 ...

  9. 使用IDEA开发Servlet程序

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

最新文章

  1. SpringCloud中Feign的适配器的实现方案
  2. mysql router安装教程_MySQL Router 安装与配置
  3. php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP
  4. 自己动手利用KVM和Intel VT实现简单虚拟机
  5. java把一个list_java 把一个大list分成N个小list,然后用map存储的小方法
  6. python之ORM操作
  7. createform用法_vue自定义表单生成器form-create使用详解
  8. 基于Hadoop2.7.3集群数据仓库Hive1.2.2的部署及使用
  9. 一代经典框架 Layui 落幕,是否预示着一个时代的结束?
  10. pythonfor循环遍历字典的属性_python-嵌套和for循环中的字典和列表中的项...
  11. python socket send_全网最详细python中socket套接字send与sendall的区别
  12. 正在将错误信息上传至服务器,android - 将Base64编码的图像上传到服务器-400服务器错误 - 堆栈内存溢出...
  13. 来我们公司面试必问的41道 SpringBoot 面试题,不看亏大了!
  14. Exchange使用正常的恢复无法恢复的问题
  15. 拓端tecdat|sas文本挖掘案例:如何使用SAS计算Word Mover的距离
  16. python编写量化交易程序英语_Python量化交易开源框架:AmazingQuant
  17. 动软代码生成器 模板
  18. 如何在开始菜单创建快捷方式
  19. 高性能高频RFID电子标签全向通道设备|图书馆防盗门HX-CH-TD6760性能与安装注意事项
  20. 华为首款台式机计算机发布,华为首款商用台式机一文读懂:商用PC进入智慧时代...

热门文章

  1. 自定义Realm实现认证
  2. bugku ctf 域名解析
  3. 计算机网络知识点1——计算机网络概述
  4. DevExpress WPF MVVM入门例子
  5. 每日一练:Python国内疫情数据爬取与地图绘制
  6. CTFshow 命令执行 web122
  7. 【hdu1241Oil Deposits】【HDU 2612 Find a way】
  8. [YTU]_2914 ( xiaoping学构造函数)
  9. numel--矩阵的元素个数
  10. 简书显示服务器错误,openfire服务器异常处理