随笔分类 -  Win32汇编

摘要:本例通过静态(static)控件的SS_BITMAP属性来加载位图:核心代码如下:(完整工程下载) 阅读全文
posted @ 2012-09-04 16:43 Andy_Boy 阅读(1795) 评论(1) 推荐(0)
摘要:应用程序可以弹出一个窗口,就像之前通过一系统列步骤来完成一个窗口的显示,同样的,应用程序也可以弹出一个对话框,对话框通过资源文件来实现,然后在程序中调用DialogBoxParam()来加载该对话框下面是源代码(完整工程下载).386.model flat,stdcalloption casemap:noneinclude windows.incinclude kernel32.incinclude user32.incinclude debug.incincludelib kernel32.libincludelib user32.libincludelib debug.lib.data? 阅读全文
posted @ 2012-09-04 13:17 Andy_Boy 阅读(1074) 评论(0) 推荐(0)
摘要:前边已经说过如何加载光标与图标,现在就再进一步说明一下如何动态设置光标与图标:以下是核心代码(完整工程下载).if eax==WM_CREATE invoke _CreatePopMenu mov hPopMenu,eax invoke LoadIcon,hInstance,IDI_ICO1 mov hIco1,eax invoke LoadIcon,hInstance,IDI_ICO2 mov hIco2,eax invoke LoadCursor,hInstance,IDC_CUR1 mov hCur1,eax invoke LoadCursor,hIn... 阅读全文
posted @ 2012-09-04 11:27 Andy_Boy 阅读(1243) 评论(0) 推荐(0)
摘要:光标的设置和图标的设置大同小异,同样是在设计窗口的时候进行修改:修改后的效果: 阅读全文
posted @ 2012-09-04 09:21 Andy_Boy 阅读(662) 评论(0) 推荐(0)
摘要:应用程序的图标大致分为两部分,我们新建一个工程,默认给出的图标都是系统的,比较难看,其实修改图标十分简单,只要在设计窗口的时候加入以下代码:其中IDI_CHIAN和IDI_TAIJI都是自己通过资源加载的图标文件,修改后效果如下:截图是窗口和任务栏上的图标,应用程序本身的图标也会发生变化喔............. 阅读全文
posted @ 2012-09-04 09:10 Andy_Boy 阅读(595) 评论(0) 推荐(0)
摘要:右键弹出菜单是很常用的功能,其实现也不能,各其相关的主要是:一个数据结构:POINT两个函数:GetCursorPos()&TrackPopupMenu()这个例子中在系统菜单的最下边增加了一个菜单项,点击弹出消息框.下面是代码(完整工程下载).386.model flat,stdcalloption casemap:noneinclude windows.incinclude kernel32.incinclude user32.incinclude debug.incincludelib kernel32.libincludelib user32.libincludelib deb 阅读全文
posted @ 2012-09-03 22:25 Andy_Boy 阅读(1089) 评论(1) 推荐(0)
摘要:点击窗口的左上角会弹出一个系统菜单,我们也可以对这个菜单进行修改这个例子中在系统菜单的最下边增加了一个菜单项,点击弹出消息框.注意系统菜单的消息是在WM_SYSCOMMAND里面处理的.下面是关于系统菜单的代码(完整工程下载).if eax==WM_CREATE invoke GetSystemMenu,hWnd,FALSE mov @hSysMenu,eax invoke AppendMenu,@hSysMenu,MF_SEPARATOR,0,NULL invoke AppendMenu,@hSysMenu,MF_STRING,IDM_ABOUT,CTEXT("About" 阅读全文
posted @ 2012-09-03 22:04 Andy_Boy 阅读(410) 评论(0) 推荐(0)
摘要:有的时候,菜单中会有单选和多选,如图:其实主要是通过两个函数CheckMenuItem和CheckMenuRadioItem来实现,创建好菜单后,在回调函数的WM_COMMAND中进行处理就可以了.以下是创建菜单和WM_COMMAND消息响应的部分代码(完整工程下载);;====================================================;;创建菜单的子程序;;==================================================== _CreateMenu proc LOCAL @hMenu LOCAL @hPopMenu.. 阅读全文
posted @ 2012-09-03 21:25 Andy_Boy 阅读(2574) 评论(0) 推荐(0)
摘要:菜单一般都会通过资源来加载,但其实也可以直接通过代码来实现:1>使用CreateMenu函数创建一个菜单,并保存句柄hMenu2>使用CreatePopupMenu函数创建一个弹出菜单,并保存句柄hPopMenu3>使用AppenMenu为弹出菜单添加菜单项4>使用AppenMenu将弹出菜单(hPopMenu)附到菜单(hMenu)上本例子创建了两个弹出菜单并附号主菜单上,并响应了菜单中的一个消息,为了使程序更加清楚,写了一个_CreateMenu子程序来实现.以下是创建菜单的子程序的代码:(完整工程下载)子程序写好后要记得调用才会出现菜单喔!_CreateMenu 阅读全文
posted @ 2012-09-03 20:03 Andy_Boy 阅读(715) 评论(0) 推荐(0)
摘要:加速键资源在编辑中也时常用到,比如Ctrl+A,Ctrl+Z等等,现在就介绍一下在Win32汇编中如何使用加速键资源,本例中按"Ctrl+O"会弹出一个消息框,按"Ctrl+E"则会在弹出一个消息框之后关闭窗口:1>新键一个工程,创建一个新的窗口.2>在资源中添加'加速键'资源首先,用ResEdit(下载:32位,64位)打开工程中的资源文件,然后添加新的加速键资源:然后,在.const中写上资源的ID号:接着,对原来的消息循环进行修改,在TranslateMessage和DispatchMessage之前TranslateM 阅读全文
posted @ 2012-09-03 18:44 Andy_Boy 阅读(611) 评论(0) 推荐(0)
摘要:基本上的窗口都会有一个菜单,现在就来看看Win32汇编中是如何加载菜单的: 1>在工程中添加新的菜单资源 2>双击新添加的菜单资源进行编辑 3>菜单栏:Make->Compile RC来编译资源文件 4>导出资源中的ID号并写到数据段的.const中 5>下面是完整的源代码供参考:(工程下载地址) 阅读全文
posted @ 2012-09-03 10:44 Andy_Boy 阅读(1255) 评论(0) 推荐(0)
摘要:记得在前面RadASM简介中有一个小程序,是弹出一个对话框,显示Hello Win32ASM,类似于一个Hello World程序,今天,受到"C语言也能干大事"(一个教人用C语言进行Win32程序设计的教程,有兴趣的可以百度一下)启发,对这个小程序作一点点改进,做成一个"RP测试"小程序,其实就是响应了对话框的按钮事件,下面给出代码,大家也可以实现各自版的"RP测试"小程序^_^;>>>>>>>>>>>>>>>>>>>& 阅读全文
posted @ 2011-05-25 21:26 Andy_Boy 阅读(463) 评论(0) 推荐(0)
摘要:.386.model flat,stdcalloption casemap:noneinclude windows.incinclude kernel32.incinclude user32.incincludelib kernel32.libincludelib user32.lib.data szCaption db 'Show resolution ratio',0 szMetrics db 'Screen Resolution Ration: %dx%d',0.data? metricsx dd ? metricsy dd ? szBuffer db 5 阅读全文
posted @ 2011-04-11 15:19 Andy_Boy 阅读(791) 评论(0) 推荐(0)
摘要:这是弹出一个最简单的消息框:.model flat,stdcalloption casemap:noneinclude windows.incinclude kernel32.incinclude user32.incincludelib kernel32.libincludelib user32.lib.data szCaption db 44h,6ch,67h,4dh,73h,67h,0;此处用十六进制的ASCII码表示DlgMsg szText db 'Hello win32 asm!',0.code main proc invoke MessageBox,NULL,ad 阅读全文
posted @ 2011-04-11 14:48 Andy_Boy 阅读(431) 评论(0) 推荐(0)
摘要:;;****************************************************************************;;register struct;;BY:qianyuqianxun;;****************************************************************************.386.model flat,stdcalloption casemap:noneinclude windows.incinclude kernel32.incinclude masm32.incinclude de 阅读全文
posted @ 2011-04-06 22:46 Andy_Boy 阅读(502) 评论(0) 推荐(0)
摘要:用RadASM新建一个Win32 APP的工程后,我们就可以编写程序了(除了填写工程名,其余的均可以默认),下面给出一个最简单的窗口程序的源代码:(代码贴上去的时候格式上有点变乱)[以后的更新如果涉及窗口则均会以此作为模板,希望为各位初学者带去便利];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g 阅读全文
posted @ 2011-03-05 10:34 Andy_Boy 阅读(1215) 评论(0) 推荐(0)
摘要:RadASM的作用相对简单,下面介绍一下一些常用的功能: 1>语言的切换:Option-->Language 2>编译,连接,运行都在Make子菜单下面,当然,界面也已经有了.注意,资源文件的编译选项也在Make下面,在使用资源文件的时候一定记得要编译一下资源. 3>字体和颜色的设置分别是:Option-->Font Option和Option-->Colors & Keywords 4>代码片段,可以用来保存经常使用到的一段代码,载入的时候很方便:Tools-->Sniplets 5>返回资源文件中各个控件的ID号:Tools-- 阅读全文
posted @ 2011-03-05 09:38 Andy_Boy 阅读(758) 评论(0) 推荐(0)
摘要:本人仅仅是凭着自己的兴趣做这样的一件事情,与高手、专业人士等名词没有丝毫关系,所以,倘若有不对之处,还望大家指正 ^_^ 下面就来说说windows下的32位汇编语言程序设计.先说说windows程序设计的概念,windows下的程序主要的,我们经常遇到的就两类,一类是控制台程序,还有一类就是窗口程序,所谓的控制台程序就是弹出那个类似与DOS的一个黑色界面,我们初学编程的时候,所写的一般都是控制台程序;窗口类程序就是指能够弹出一个对话框或者窗口的应用程序,比如眼前的这个浏览器.windows应用程序的核心就是调用API函数来编程,其实,当我们用API函数来编写程序的时候,无论你是使用C,C+. 阅读全文
posted @ 2011-03-05 08:56 Andy_Boy 阅读(1314) 评论(0) 推荐(1)