WIN32汇编,不知道哪里出了问题了

IT保安 2014-01-08 02:39:26
自己动手写个简单的对话框,RC和ASM都是自己写的,主要是根据书中的例子,自己看过之后,尝试动手加深记忆!
但是生成的exe文件:1.无法关闭 2.显示出来的对话框奇形怪状。
自己看了半天了,改了好几处地方,也不知道怎么回事!索性恢复到原来的样子,期盼大家给我点指导!
RC
#include				<resource.h>

#define ICO_MAIN 0x0001
#define DLG_MAIN 1
#define IDB_1 2
#define IDB_2 3
#define IDC_PIC 100
#define IDC_PERINFO 101
#define IDC_PERNAME 102
#define IDC_PERSEXL 103
#define IDC_PERADDR 104
#define IDC_PERCOMINFO 201
#define IDC_OWN 202
#define IDC_NOTOWN 203
#define IDC_CHANBIT 301
#define IDC_CANCEL 300

ICO_MAIN ICON "Main.ico"
IDB_1 BITMAP "1.bmp"
IDB_2 BITMAP "2.bmp"

DLG_MAIN DIALOG 55,55,400,300
STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME
CAPTION "个人信息"
FONT 9,"宋体"
{
GROUPBOX "照片",-1,5,20,100,60
GROUPBOX "个人资料",IDC_PERINFO,125,20,200,60
//LTEXT "姓名:",-1,135,22,15,20
//EDITTEXT IDC_PERNAME,155,22,100,20
//LTEXT "性别:",-1,135,45,15,20
//EDITTEXT IDC_PERSEXL,155,45,100,20
//LTEXT "住址:",-1,135,68,15,20
//EDITTEXT IDC_PERADDR,155,68,100,20
//LTEXT "是否有万达的VIP卡",-1,135,95,100,20,WS_BORDER
AUTORADIOBUTTON "是",IDC_OWN,215,100,15,15,
AUTORADIOBUTTON "否",IDC_NOTOWN,225,100,15,15
}

ASM
				.386
.model flat,stdcall
option casemap:none

include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc
includelib gdi32.lib

ICO_MAIN equ 0001h
DLG_MAIN equ 1
IDB_1 equ 2
IDB_2 equ 3
IDC_PIC equ 100
IDC_PERINFO equ 101
IDC_PERNAME equ 102
IDC_PERSEXL equ 103
IDC_PERADDR equ 104
IDC_PERCOMINFO equ 201
IDC_OWN equ 202
IDC_NOTOWN equ 203
IDC_CHANBIT equ 301
IDC_CANCEL equ 300

.data?
hInstance dd ?

.code
_DlgProcMain proc uses ebx esi edi hWnd,uMsg,wParam,lParam
mov eax,uMsg
.if eax==WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax==WM_INITDIALOG
invoke LoadIcon,hInstance,ICO_MAIN
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
.else
mov eax,TRUE
.endif
ret
_DlgProcMain endp
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _DlgProcMain,NULL
invoke ExitProcess,NULL
end start
...全文
201 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT保安 2014-01-08
  • 打赏
  • 举报
回复
ZARA说的很对,我再回头仔细看看DIALOGBOXPARAM那部分的内容,看书还是得仔细啊! 自学就是累,哪里可以找到一个好老师!
zara 2014-01-08
  • 打赏
  • 举报
回复
你好像是把 DlgProc() 里的返回值给搞反了。按照 DialogBoxParam() 的说明,自己处理了的要返回 1,没处理的返回 0;WM_INITDIALOG 另外说。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧