⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tut8.html

📁 win32汇编教程 希望各位多多支持
💻 HTML
📖 第 1 页 / 共 3 页
字号:
  item.</font></font></font> <br>
  <font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>When the user 
  selects a menu item, the window procedure will receive a WM_COMMAND message. 
  The low word of wParam contains the menu ID of the selected menu item.</font></font></font> 
  <br>
  <font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>Now we have 
  sufficient information to create and use a menu. Let's do it.</font></font></font> 
  <h3> <font face="Arial,Helvetica"><font color="#CCCCCC"><font size=+0>Example:</font></font></font></h3>
  <font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>The first example 
  shows how to create and use a menu by specifying the menu name in the window 
  class.</font></font></font><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.386</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.model 
    flat,stdcall</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>option 
    casemap:none</font></font></font></b><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font></b> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>WinMain 
    proto :DWORD,:DWORD,:DWORD,:DWORD</font></font></font></b><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font></b> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>include 
    \masm32\include\windows.inc</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>include 
    \masm32\include\user32.inc</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>include 
    \masm32\include\kernel32.inc</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>includelib 
    \masm32\lib\user32.lib</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>includelib 
    \masm32\lib\kernel32.lib</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.data</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>ClassName 
    db "SimpleWinClass",0</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>AppName&nbsp; 
    db "Our First Window",0</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font size=-1><font color="#CCCCCC">MenuName 
    db "FirstMenu",0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#999900"> 
    ; The name of our menu in the resource file.</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>Test_string 
    db "You selected Test menu item",0</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>Hello_string 
    db "Hello, my friend",0</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>Goodbye_string 
    db "See you again, bye",0</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.data?</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>hInstance 
    HINSTANCE ?</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>CommandLine 
    LPSTR ?</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.const</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>IDM_TEST 
    equ 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    ; Menu IDs</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>IDM_HELLO 
    equ 2</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>IDM_GOODBYE 
    equ 3</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>IDM_EXIT 
    equ 4</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>.code</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>start:</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke GetModuleHandle, NULL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp;&nbsp; hInstance,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke GetCommandLine<br>
    &nbsp;&nbsp;&nbsp;&nbsp;mov CommandLine,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke ExitProcess,eax</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>WinMain 
    proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    LOCAL wc:WNDCLASSEX</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    LOCAL msg:MSG</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    LOCAL hwnd:HWND</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.cbSize,SIZEOF WNDCLASSEX</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.style, CS_HREDRAW or CS_VREDRAW</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.lpfnWndProc, OFFSET WndProc</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.cbClsExtra,NULL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.cbWndExtra,NULL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    push&nbsp; hInst</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    pop&nbsp;&nbsp; wc.hInstance</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.hbrBackground,COLOR_WINDOW+1</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font size=-1><font color="#CCCCCC">&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.lpszMenuName,OFFSET MenuName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#999900">&nbsp;&nbsp; 
    ; Put our menu name here</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.lpszClassName,OFFSET ClassName</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke LoadIcon,NULL,IDI_APPLICATION</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.hIcon,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.hIconSm,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke LoadCursor,NULL,IDC_ARROW</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; wc.hCursor,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke RegisterClassEx, addr wc</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    hInst,NULL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp; hwnd,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke ShowWindow, hwnd,SW_SHOWNORMAL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    invoke UpdateWindow, hwnd</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .WHILE TRUE</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke GetMessage, ADDR msg,NULL,0,0</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .BREAK .IF (!eax)</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke DispatchMessage, ADDR msg</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .ENDW</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    mov&nbsp;&nbsp;&nbsp;&nbsp; eax,msg.wParam</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    ret</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>WinMain 
    endp</font></font></font></b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1></font></font></font> 
  <p><b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>WndProc 
    proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .IF uMsg==WM_DESTROY</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke PostQuitMessage,NULL</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .ELSEIF uMsg==WM_COMMAND</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    mov eax,wParam</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .IF ax==IDM_TEST</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke MessageBox,NULL,ADDR Test_string,OFFSET AppName,MB_OK</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .ELSEIF ax==IDM_HELLO</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke MessageBox, NULL,ADDR Hello_string, OFFSET AppName,MB_OK</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .ELSEIF ax==IDM_GOODBYE</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke MessageBox,NULL,ADDR Goodbye_string, OFFSET AppName, MB_OK</font></font></font></b> 
    <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .ELSE</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke DestroyWindow,hWnd</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    .ENDIF</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .ELSE</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    ret</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    .ENDIF</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    xor&nbsp;&nbsp;&nbsp; eax,eax</font></font></font></b> <br>
    <b><font face="Arial,Helvetica"><font color="#CCCCCC"><font size=-1>&nbsp;&nbsp;&nbsp; 
    ret</font></font></font></b> <br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -