关于RC文件的一个小问题
今天自己动手写个小程序,巩固之前看书学的东西,遇到一个问题很奇怪,很不理解!
请看代码,很简单,就是写个有菜单项的对话框!
RC文件:
#include<resource.h>
#defineICO_MAIN0x1000
#defineDLG_MAIN0x1000
#defineIDG_PUSHME0x1001
#defineIDM_MAIN0x1000
//#defineIDM_OPTION0x0002
#defineIDM_OPENFILE0x1001
#defineIDM_SAVEAS0x1002
#defineIDM_SETPAGE0x1003
#defineIDM_QUIT0x1004
//#defineIDM_CHECKSTATUS0x0007
#defineIDM_SERCHCHAR0x1005
#defineIDM_EXCHCHAR0x1006
#defineIDM_CHOSFONT0x1007
#defineIDM_CHOSCOLOR0x1008
ICO_MAINICON"my.ico"
DLG_MAINDIALOG50,50,200,150
MENUIDM_MAIN
STYLEWS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_POPUP|DS_MODALFRAME
CAPTION"通用对话框组件范例"
FONT9,"宋体"
{
PUSHBUTTON"点我",IDG_PUSHME,80,80,35,15,WS_VISIBLE
}
IDM_MAINmenu
BEGIN
POPUP"文件"
BEGIN
menuitem"打开文件",IDM_OPENFILE
menuitem"另存为",IDM_SAVEAS
menuitem"退出",IDM_QUIT
END
POPUP"查看"
BEGIN
menuitem"查找字符串",IDM_SERCHCHAR
menuitem"替换字符串",IDM_EXCHCHAR
menuitem"选择字体",IDM_CHOSFONT
menuitem"选择颜色",IDM_CHOSCOLOR
END
END
.386
.model flat,stdcall
option casemap:none
includewindows.inc
includeuser32.inc
includelibuser32.lib
includekernel32.inc
includelibkernel32.lib
;includeComdlg32.inc
;includelibComdlg32.lib
ICO_MAINequ1000h
IDM_MAINequ1000h
DLG_MAINequ1000h
IDG_PUSHMEequ1001h
IDM_OPENFILEequ1001h
IDM_SETPAGEequ1002h
IDM_QUITequ1003h
IDM_CHECKSTATUSequ1004h
IDM_SERCHCHARequ1005h
IDM_EXCHCHARequ1006h
IDM_CHOSFONTequ1007h
IDM_CHOSCOLORequ1008h
.data?
hInstancedd?
.code
_DlgProcprocuses ebx esi edi hWnd,uMsg,wParam,lParam
moveax,uMsg
.ifeax==WM_CLOSE
invokeEndDialog,hWnd,NULL
.elseifeax==WM_INITDIALOG
invokeLoadIcon,hInstance,ICO_MAIN
invokeSendMessage,hWnd,WM_SETICON,ICON_BIG,eax
.else
moveax,FALSE
ret
.endif
moveax,TRUE
ret
_DlgProcendp
start:
invokeGetModuleHandle,NULL
movhInstance,eax
invokeDialogBoxParam,hInstance,DLG_MAIN,NULL,offset _DlgProc,NULL
invokeExitProcess,NULL
endstart