鱼C论坛

 找回密码
 立即注册
查看: 1794|回复: 6

[已解决]模态对话框中菜单显示问题

[复制链接]
发表于 2018-6-6 17:28:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 兰陵月 于 2018-6-7 09:03 编辑

ASM源文件:
  1. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. ; ******************【程】***【序】***【信】***【息】******************
  3. ;------------------------------------------------------------------------
  4. ; 程序基本信息
  5. ;------------------------------------------------------------------------
  6. ; 程序名称:SB.asm
  7. ; 程序功能:编写程序演示通用对话框的相关实现
  8. ; 编辑软件:Notepad++  编码格式:ANSI
  9. ; 创建日期:2018.06.05
  10. ; 创 建 者: by 鱼C论坛 兰陵月  QQ:2186745820
  11. ;------------------------------------------------------------------------
  12. ; MakeFile 文件
  13. ;------------------------------------------------------------------------
  14. ;NAME = SB
  15. ;OBJS = $(NAME).obj
  16. ;LINK_FLAG = /subsystem:windows
  17. ;ML_FLAG = /c /coff
  18. ;$(NAME).exe: $(OBJS)
  19. ;        Link $(LINK_FLAG) $(OBJS)
  20. ;.asm.obj:
  21. ;        ml $(ML_FLAG) $<
  22. ;clean:
  23. ;        del *.obj
  24. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  25. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26. ; 【模式定义】
  27. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  28.                                 .386
  29.                                 .model flat,stdcall
  30.                                 option casemap:none                                       
  31. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  32. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  33. ; 【include 文件定义】
  34. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35. include                windows.inc
  36. include                user32.inc
  37. includelib        user32.lib
  38. include         kernel32.inc
  39. includelib        kernel32.lib
  40. include                comdlg32.inc
  41. includelib        comdlg32.lib
  42. ; include                gdi32.inc
  43. ; includelib        gdi32.lib
  44. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  45. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  46. ; 【Equ等值定义】,对应资源代码文件中的define部分
  47. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  48. DLG_MAIN                equ                1000h
  49. IDM_MAIN                equ                1000h
  50. IDM_OPEN                equ                3101h
  51. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  52. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  53. ; 【数据段】
  54. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  55. ;------------------------------------------------------------------------
  56. ; 可读可写已初始化变量
  57. ;------------------------------------------------------------------------
  58. ;                                        .data
  59. ;------------------------------------------------------------------------
  60. ; ×××变量定义区×××
  61. ;------------------------------------------------------------------------
  62. ; 可读可写未初始化变量
  63. ;------------------------------------------------------------------------
  64.                                         .data?
  65. ;------------------------------------------------------------------------
  66. hInstance                dd                ?
  67. ;hWinMain                dd                ?
  68. ;------------------------------------------------------------------------
  69. ; 可读不可写初始化常量
  70. ;------------------------------------------------------------------------
  71. ;                                        .const
  72. ;------------------------------------------------------------------------
  73. ; ×××变量定义区×××
  74. ;------------------------------------------------------------------------

  75. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  76. ; 【代码段】
  77. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  78.                                         .code
  79. ;------------------------------------------------------------------------
  80. ; **子程序:×××(第×××行~第×××行)
  81. ; **功能:
  82. ; **参数:
  83. ; **返回值:
  84. ; **备注:
  85. ;------------------------------------------------------------------------
  86. ; **子程序代码
  87. ;------------------------------------------------------------------------
  88. ; **子程序:_WinMain
  89. ; **功能:注册窗口、建立并显示窗口、分配消息
  90. ; **参数:无参数
  91. ; **返回值:无返回值
  92. ; **备注:
  93. ;------------------------------------------------------------------------
  94. _ProcDlgMain                proc        uses ebx edi esi, hWnd, wMsg, wParam, lParam

  95.                                 mov                eax,wMsg
  96.                                 .if                eax == WM_CLOSE
  97.                                                 invoke        EndDialog,hWnd,NULL
  98.                                 .else
  99.                                                 mov                eax,FALSE
  100.                                                 ret
  101.                                 .endif
  102.                                 mov                eax,TRUE
  103.                                 ret                                               

  104. _ProcDlgMain                endp
  105. ;------------------------------------------------------------------------
  106. ; **主程序
  107. ;------------------------------------------------------------------------
  108. start:
  109.                                 invoke        GetModuleHandle,NULL
  110.                                 mov                hInstance,eax
  111.                                 invoke        DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
  112.                                 invoke        ExitProcess,NULL                               
  113. ;------------------------------------------------------------------------
  114. ; 程序起始点
  115. ;------------------------------------------------------------------------
  116.                                 end                start
  117. ;------------------------------------------------------------------------
  118. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                       
复制代码


资源文件:
  1. ///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. #include        <resource.h>
  3. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  4. #define        DLG_MAIN        0x1000
  5. #define        IDM_MAIN        0x1000
  6. #define        IDM_OPEN        0x3101
  7. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  8. DLG_MAIN DIALOG  200, 150, 300, 200
  9. //MENU IDM_MAIN
  10. STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
  11. CAPTION "通用对话框演示程序"
  12. FONT 9,"宋体"
  13. {
  14.         
  15. }
  16. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  17. IDM_MAIN        menu discardable
  18. BEGIN
  19.         popup        "文件(&F)"
  20.         BEGIN
  21.                 menuitem                "打开文件(&O)...",IDM_OPEN
  22.         END
  23. END
复制代码


MAKEFILE文件:
  1. NAME = SB
  2. OBJS = $(NAME).obj
  3. RES  = $(NAME).res

  4. LINK_FLAG = /subsystem:windows
  5. ML_FLAG = /c /coff

  6. $(NAME).exe: $(OBJS) $(RES)
  7.         Link $(LINK_FLAG) $(OBJS) $(RES)

  8. .asm.obj:
  9.         ml $(ML_FLAG) [        DISCUZ_CODE_2        ]lt;
  10. .rc.res:
  11.         rc [        DISCUZ_CODE_2        ]lt;

  12. clean:
  13.         del *.obj
  14.         del *.res
复制代码
将《资源文件》中第9行注释后,程序能正常显示如下的界面:
111.png


程序的本意是要在这个模态对话框的标题栏下显示一个菜单(这是《琢石成器》第8章的一个程序。)
但是现在《资源文件》的第9行如果不注释掉,虽然可以正常编译完成,但是执行SB.EXE后,一闪退出(或者其他现象,反正就是不显示界面),请各位帮忙检查检查,到底是哪里的问题?为何在对话框定义之后加上菜单就不行??




DLG_MAIN DIALOG  200, 150, 300, 200
//MENU IDM_MAIN
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
最佳答案
2018-6-7 14:33:26
数字太大了 ^_^

1.png
2.png



main.asm
  1. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. ; ******************【程】***【序】***【信】***【息】******************
  3. ;------------------------------------------------------------------------
  4. ; 程序基本信息
  5. ;------------------------------------------------------------------------
  6. ; 程序名称:SB.asm
  7. ; 程序功能:编写程序演示通用对话框的相关实现
  8. ; 编辑软件:Notepad++  编码格式:ANSI
  9. ; 创建日期:2018.06.05
  10. ; 创 建 者: by 鱼C论坛 兰陵月  QQ:2186745820
  11. ;------------------------------------------------------------------------
  12. ; MakeFile 文件
  13. ;------------------------------------------------------------------------
  14. ;NAME = SB
  15. ;OBJS = $(NAME).obj
  16. ;LINK_FLAG = /subsystem:windows
  17. ;ML_FLAG = /c /coff
  18. ;$(NAME).exe: $(OBJS)
  19. ;        Link $(LINK_FLAG) $(OBJS)
  20. ;.asm.obj:
  21. ;        ml $(ML_FLAG) $<
  22. ;clean:
  23. ;        del *.obj
  24. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  25. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26. ; 【模式定义】
  27. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  28.                                 .386
  29.                                 .model flat,stdcall
  30.                                 option casemap:none                                       
  31. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  32. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  33. ; 【include 文件定义】
  34. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35. include                windows.inc
  36. include                user32.inc
  37. includelib        user32.lib
  38. include         kernel32.inc
  39. includelib        kernel32.lib
  40. include                comdlg32.inc
  41. includelib        comdlg32.lib
  42. ; include                gdi32.inc
  43. ; includelib        gdi32.lib
  44. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  45. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  46. ; 【Equ等值定义】,对应资源代码文件中的define部分
  47. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  48. ;DLG_MAIN                equ                1000h
  49. ;IDM_MAIN                equ                1000h
  50. DLG_MAIN                equ                100
  51. IDM_MAIN                equ                100
  52. IDM_OPEN                equ                3101h
  53. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  54. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  55. ; 【数据段】
  56. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  57. ;------------------------------------------------------------------------
  58. ; 可读可写已初始化变量
  59. ;------------------------------------------------------------------------
  60. ;                                        .data
  61. ;------------------------------------------------------------------------
  62. ; ×××变量定义区×××
  63. ;------------------------------------------------------------------------
  64. ; 可读可写未初始化变量
  65. ;------------------------------------------------------------------------
  66.                                         .data?
  67. ;------------------------------------------------------------------------
  68. hInstance                dd                ?
  69. ;hWinMain                dd                ?
  70. ;------------------------------------------------------------------------
  71. ; 可读不可写初始化常量
  72. ;------------------------------------------------------------------------
  73. ;                                        .const
  74. ;------------------------------------------------------------------------
  75. ; ×××变量定义区×××
  76. ;------------------------------------------------------------------------

  77. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  78. ; 【代码段】
  79. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  80.                                         .code
  81. ;------------------------------------------------------------------------
  82. ; **子程序:×××(第×××行~第×××行)
  83. ; **功能:
  84. ; **参数:
  85. ; **返回值:
  86. ; **备注:
  87. ;------------------------------------------------------------------------
  88. ; **子程序代码
  89. ;------------------------------------------------------------------------
  90. ; **子程序:_WinMain
  91. ; **功能:注册窗口、建立并显示窗口、分配消息
  92. ; **参数:无参数
  93. ; **返回值:无返回值
  94. ; **备注:
  95. ;------------------------------------------------------------------------
  96. _ProcDlgMain                proc        uses ebx edi esi, hWnd, wMsg, wParam, lParam

  97.                                 mov                eax,wMsg
  98.                                 .if                eax == WM_CLOSE
  99.                                                 invoke        EndDialog,hWnd,NULL
  100.                                 .else
  101.                                                 mov                eax,FALSE
  102.                                                 ret
  103.                                 .endif
  104.                                 mov                eax,TRUE
  105.                                 ret                                                

  106. _ProcDlgMain                endp
  107. ;------------------------------------------------------------------------
  108. ; **主程序
  109. ;------------------------------------------------------------------------
  110. start:
  111.                                 invoke        GetModuleHandle,NULL
  112.                                 mov                hInstance,eax
  113.                                 invoke        DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
  114.                                 invoke        ExitProcess,NULL                                
  115. ;------------------------------------------------------------------------
  116. ; 程序起始点
  117. ;------------------------------------------------------------------------
  118.                                 end                start
  119. ;------------------------------------------------------------------------
  120. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                        
复制代码


main.rc
  1. ///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. #include        <resource.h>
  3. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  4. //#define        DLG_MAIN        0x1000
  5. //#define        IDM_MAIN        0x1000
  6. #define        DLG_MAIN        100
  7. #define        IDM_MAIN        100
  8. #define        IDM_OPEN        0x3101
  9. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  10. DLG_MAIN DIALOG  200, 150, 300, 200
  11. MENU IDM_MAIN
  12. STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
  13. CAPTION "通用对话框演示程序"
  14. FONT 9,"宋体"
  15. {
  16.         
  17. }
  18. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  19. IDM_MAIN        menu discardable
  20. BEGIN
  21.         popup        "文件(&F)"
  22.         BEGIN
  23.                 menuitem                "打开文件(&O)...",IDM_OPEN
  24.         END
  25. END
复制代码


Makefile
  1. NAME = main
  2. OBJS = $(NAME).obj
  3. RES  = $(NAME).res

  4. LINK_FLAG = /subsystem:windows
  5. ML_FLAG = /c /coff

  6. $(NAME).exe: $(OBJS) $(RES)
  7.         Link $(LINK_FLAG) $(OBJS) $(RES)

  8. .asm.obj:
  9.         ml $(ML_FLAG) $<
  10. .rc.res:
  11.         rc $<

  12. clean:
  13.         del *.obj
  14.         del *.res
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-6 18:10:57 | 显示全部楼层
  1. main.asm(90) : error A2006: undefined symbol : ICO_MAIN
  2. main.asm(90) : error A2114: INVOKE argument type mismatch : argument : 2
  3. NMAKE : fatal error U1077: 'ml' : return code '0x1'
  4. Stop.
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-7 09:04:31 | 显示全部楼层
本帖最后由 兰陵月 于 2018-6-7 09:06 编辑


程序已经修改,开始是拷贝错了,我把图标ICO_MAIN这个去掉了。

其他情况未发生变化,现在存在的问题还是一楼提出的情况一样~~

有些注释我没去修改,不管它。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-7 14:33:26 | 显示全部楼层    本楼为最佳答案   
数字太大了 ^_^

1.png
2.png



main.asm
  1. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. ; ******************【程】***【序】***【信】***【息】******************
  3. ;------------------------------------------------------------------------
  4. ; 程序基本信息
  5. ;------------------------------------------------------------------------
  6. ; 程序名称:SB.asm
  7. ; 程序功能:编写程序演示通用对话框的相关实现
  8. ; 编辑软件:Notepad++  编码格式:ANSI
  9. ; 创建日期:2018.06.05
  10. ; 创 建 者: by 鱼C论坛 兰陵月  QQ:2186745820
  11. ;------------------------------------------------------------------------
  12. ; MakeFile 文件
  13. ;------------------------------------------------------------------------
  14. ;NAME = SB
  15. ;OBJS = $(NAME).obj
  16. ;LINK_FLAG = /subsystem:windows
  17. ;ML_FLAG = /c /coff
  18. ;$(NAME).exe: $(OBJS)
  19. ;        Link $(LINK_FLAG) $(OBJS)
  20. ;.asm.obj:
  21. ;        ml $(ML_FLAG) $<
  22. ;clean:
  23. ;        del *.obj
  24. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  25. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26. ; 【模式定义】
  27. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  28.                                 .386
  29.                                 .model flat,stdcall
  30.                                 option casemap:none                                       
  31. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  32. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  33. ; 【include 文件定义】
  34. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35. include                windows.inc
  36. include                user32.inc
  37. includelib        user32.lib
  38. include         kernel32.inc
  39. includelib        kernel32.lib
  40. include                comdlg32.inc
  41. includelib        comdlg32.lib
  42. ; include                gdi32.inc
  43. ; includelib        gdi32.lib
  44. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  45. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  46. ; 【Equ等值定义】,对应资源代码文件中的define部分
  47. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  48. ;DLG_MAIN                equ                1000h
  49. ;IDM_MAIN                equ                1000h
  50. DLG_MAIN                equ                100
  51. IDM_MAIN                equ                100
  52. IDM_OPEN                equ                3101h
  53. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  54. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  55. ; 【数据段】
  56. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  57. ;------------------------------------------------------------------------
  58. ; 可读可写已初始化变量
  59. ;------------------------------------------------------------------------
  60. ;                                        .data
  61. ;------------------------------------------------------------------------
  62. ; ×××变量定义区×××
  63. ;------------------------------------------------------------------------
  64. ; 可读可写未初始化变量
  65. ;------------------------------------------------------------------------
  66.                                         .data?
  67. ;------------------------------------------------------------------------
  68. hInstance                dd                ?
  69. ;hWinMain                dd                ?
  70. ;------------------------------------------------------------------------
  71. ; 可读不可写初始化常量
  72. ;------------------------------------------------------------------------
  73. ;                                        .const
  74. ;------------------------------------------------------------------------
  75. ; ×××变量定义区×××
  76. ;------------------------------------------------------------------------

  77. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  78. ; 【代码段】
  79. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  80.                                         .code
  81. ;------------------------------------------------------------------------
  82. ; **子程序:×××(第×××行~第×××行)
  83. ; **功能:
  84. ; **参数:
  85. ; **返回值:
  86. ; **备注:
  87. ;------------------------------------------------------------------------
  88. ; **子程序代码
  89. ;------------------------------------------------------------------------
  90. ; **子程序:_WinMain
  91. ; **功能:注册窗口、建立并显示窗口、分配消息
  92. ; **参数:无参数
  93. ; **返回值:无返回值
  94. ; **备注:
  95. ;------------------------------------------------------------------------
  96. _ProcDlgMain                proc        uses ebx edi esi, hWnd, wMsg, wParam, lParam

  97.                                 mov                eax,wMsg
  98.                                 .if                eax == WM_CLOSE
  99.                                                 invoke        EndDialog,hWnd,NULL
  100.                                 .else
  101.                                                 mov                eax,FALSE
  102.                                                 ret
  103.                                 .endif
  104.                                 mov                eax,TRUE
  105.                                 ret                                                

  106. _ProcDlgMain                endp
  107. ;------------------------------------------------------------------------
  108. ; **主程序
  109. ;------------------------------------------------------------------------
  110. start:
  111.                                 invoke        GetModuleHandle,NULL
  112.                                 mov                hInstance,eax
  113.                                 invoke        DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
  114.                                 invoke        ExitProcess,NULL                                
  115. ;------------------------------------------------------------------------
  116. ; 程序起始点
  117. ;------------------------------------------------------------------------
  118.                                 end                start
  119. ;------------------------------------------------------------------------
  120. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                        
复制代码


main.rc
  1. ///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. #include        <resource.h>
  3. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  4. //#define        DLG_MAIN        0x1000
  5. //#define        IDM_MAIN        0x1000
  6. #define        DLG_MAIN        100
  7. #define        IDM_MAIN        100
  8. #define        IDM_OPEN        0x3101
  9. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  10. DLG_MAIN DIALOG  200, 150, 300, 200
  11. MENU IDM_MAIN
  12. STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
  13. CAPTION "通用对话框演示程序"
  14. FONT 9,"宋体"
  15. {
  16.         
  17. }
  18. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  19. IDM_MAIN        menu discardable
  20. BEGIN
  21.         popup        "文件(&F)"
  22.         BEGIN
  23.                 menuitem                "打开文件(&O)...",IDM_OPEN
  24.         END
  25. END
复制代码


Makefile
  1. NAME = main
  2. OBJS = $(NAME).obj
  3. RES  = $(NAME).res

  4. LINK_FLAG = /subsystem:windows
  5. ML_FLAG = /c /coff

  6. $(NAME).exe: $(OBJS) $(RES)
  7.         Link $(LINK_FLAG) $(OBJS) $(RES)

  8. .asm.obj:
  9.         ml $(ML_FLAG) $<
  10. .rc.res:
  11.         rc $<

  12. clean:
  13.         del *.obj
  14.         del *.res
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-8 10:16:04 | 显示全部楼层

问题解决,爽歪歪,先确定最佳答案!

我再找些资料来看看,哪个地方有这么个规定数字不能太大,晕死!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-8 10:16:37 | 显示全部楼层

多谢了,兄弟。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 13:41:25 | 显示全部楼层

^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表