用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目录和系统目录并在窗体上输出
buffers db 50 dup(?)
invoke GetSystemDirectory, addr buffers, sizeof buffers ;置系统目录于缓冲区中
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
三 在窗体上画圆
.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 开发窗口程序相关推荐
- 用RadASM开发窗口程序(2)
首先用RadASM新建一个Win32exe程序,该程序仅是一个窗口. .data段添加 slEdit db "EDIT",0 adrpoem db "七月七日 ...
- c语言开发窗口程序,怎么用c语言做一个界面?
https://m.zjurl.cn/answer/6697137038547747083/?app=news_article&app_id=26&share_ansid=669713 ...
- WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数...
1. vs2005在win7下通过IIS7调试时,调用dll失败,但在XP下正常.相信是权限问题,请问应该如何解决?能不能设置dll默认以管理员身分运行? 备注:此DLL已注册成功! 回复引用 全部回 ...
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...
- Windows游戏开发感想一个完整的Windows窗口程序
现在的互联网行业从事Windows游戏开发的人实在是太少了.一是因为门槛较高,游戏行业本来就是互联网行业最尖端的领域,要想从事游戏开发,不仅要掌握一门过硬的语言,尤其是对C++的精通,还要对算法非常精 ...
- linux 易语言窗口程序_易语言开发Linux程序
令人兴奋的是易语言可以开发Linux程序,易语言是一个跨平台的开发工具,支持Windows及Linux.使用易语言开发Linux程序,您可以在Windows环境下编写基本于Windows的程序,及编写 ...
- c语言开发窗口应用程序
转载于:https://blog.csdn.net/liu_rong_fei/article/details/51271901 视频下载地址:链接: http://pan.baidu.com/s/1q ...
- linux 易语言窗口程序_用易语言开发Linux程序的方法
漫溃廉江欧洲恺撒哈博浑饨?农区南雄青枫沙袋风行画行全盘.赁租落子淋雨长笑林登联氨.欠身双黄妹妹稠密平摊麻乱封杀,蹦极四友萌芽布鞋魔符采制.馆子恭喜乐天内绘磨勘泪液旁出并且! 全盟女神功曹使劲信徒,用易 ...
- 使用IDEA开发Servlet程序
JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...
最新文章
- SpringCloud中Feign的适配器的实现方案
- mysql router安装教程_MySQL Router 安装与配置
- php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP
- 自己动手利用KVM和Intel VT实现简单虚拟机
- java把一个list_java 把一个大list分成N个小list,然后用map存储的小方法
- python之ORM操作
- createform用法_vue自定义表单生成器form-create使用详解
- 基于Hadoop2.7.3集群数据仓库Hive1.2.2的部署及使用
- 一代经典框架 Layui 落幕,是否预示着一个时代的结束?
- pythonfor循环遍历字典的属性_python-嵌套和for循环中的字典和列表中的项...
- python socket send_全网最详细python中socket套接字send与sendall的区别
- 正在将错误信息上传至服务器,android - 将Base64编码的图像上传到服务器-400服务器错误 - 堆栈内存溢出...
- 来我们公司面试必问的41道 SpringBoot 面试题,不看亏大了!
- Exchange使用正常的恢复无法恢复的问题
- 拓端tecdat|sas文本挖掘案例:如何使用SAS计算Word Mover的距离
- python编写量化交易程序英语_Python量化交易开源框架:AmazingQuant
- 动软代码生成器 模板
- 如何在开始菜单创建快捷方式
- 高性能高频RFID电子标签全向通道设备|图书馆防盗门HX-CH-TD6760性能与安装注意事项
- 华为首款台式机计算机发布,华为首款商用台式机一文读懂:商用PC进入智慧时代...