Windows下的視窗程序

來源:互聯網
上載者:User

標籤:

再進一步、

 

.386.model flat,stdcalloption casemap:noneinclude        Windows.incinclude        user32.incincludelib    user32.libinclude        kernel32.incincludelib    kernel32.libWinMain proto :DWORD ,:DWORD,:DWORD,:DWORD    ;WinMain 函數原型定義.DATAClassName    db    "SimpleWinClass",0AppName        db    "My First Window",0.DATA?                            ;沒有初始化的資料hInstance    HINSTANCE    ?CommandLine    LPSTR        ?            ;字串指標變數.CODEstart:;-----------------------------------------------------------------------------------------------------------;得到應用程式的控制代碼invoke    GetModuleHandle,NULLmov        hInstance,eax;-----------------------------------------------------------------------------------------------------------;得到命令列參數invoke    GetCommandLinemov        CommandLine,eax;調用WinMain函數invoke    WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT;-----------------------------------------------------------------------------------------------------------;退出該應用程式invoke    ExitProcess,eax;-----------------------------------------------------------------------------------------------------------WinMain    proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD    LOCAL wc:WNDCLASSEX    LOCAL msg:MSG    LOCAL hwnd:HWND;-----------------------------------------------------------------------------------------------------------;註冊視窗類別mov     wc.cbSize,SIZEOF WNDCLASSEXmov        wc.style,CS_HREDRAW or CS_VREDRAWmov        wc.lpfnWndProc,OFFSET    WndProc                ;指定視窗的回呼函數mov        wc.cbClsExtra,NULLmov     wc.cbWndExtra,NULLpush    hInstancepop        wc.hInstance                                ;儲存視窗的執行個體控制代碼mov     wc.hbrBackground,COLOR_WINDOW+1                ;視窗的背景顏色mov     wc.lpszMenuName,NULLmov        wc.lpszClassName,OFFSET ClassName        invoke    LoadIcon,NULL,IDI_APPLICATIONmov        wc.hIcon,eaxmov        wc.hIconSm,eaxinvoke    LoadCursor,NULL,IDC_ARROWmov        wc.hCursor,eaxinvoke    RegisterClassEx,addr wc;-----------------------------------------------------------------------------------------------------------;建立視窗對象invoke    CreateWindowEx,NULL,            ADDR ClassName,            ADDR AppName,            WS_OVERLAPPEDWINDOW,            CW_USEDEFAULT,            CW_USEDEFAULT,            CW_USEDEFAULT,            CW_USEDEFAULT,            NULL,            NULL,            hInst,            NULLmov        hwnd,eax;-----------------------------------------------------------------------------------------------------------;顯示視窗invoke    ShowWindow,hwnd,CmdShow;-----------------------------------------------------------------------------------------------------------;重新整理視窗客戶區invoke UpdateWindow,hwnd;-----------------------------------------------------------------------------------------------------------;進入擷取視窗訊息的迴圈 .WHILE TRUE     invoke GetMessage,ADDR msg,NULL,0,0     .BREAK .IF (!eax)     invoke TranslateMessage,ADDR msg     invoke DispatchMessage,ADDR     msg .endwmov        eax,msg.wParamretWinMain endp;-----------------------------------------------------------------------------------------------------------;視窗回呼函數WndProc    proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM;關閉訊息--退出處理.IF uMsg==WM_DESTROY    invoke  PostQuitMessage,NULL.ELSE    invoke  DefWindowProc,hWnd,uMsg,wParam,lParam    ret.endifxor eax,eaxret        WndProc endp    end start    

 

Windows下的視窗程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.