程式語言 - ObjAsm - Dialog - Create Window



參考資訊:
https://github.com/ObjAsm
https://objasm.x10host.com/index.htm

main.asm

%include @Environ(OBJASM_PATH)\Code\Macros\Model.inc
SysSetup OOP, WIN32, ANSI_STRING
      
MakeObjects Primer
   
    .const   
Object MyApp, , Primer
    RedefineMethod Init
    StaticMethod Run

    DefineVariable hWnd, HWND, 0
ObjectEnd
 
    .code
Method MyApp.Init, uses esi
    SetObject esi
    invoke CreateWindowEx, WS_EX_LEFT, WC_DIALOG, $OfsCStr("main"), 
        WS_OVERLAPPEDWINDOW or WS_VISIBLE, 0, 0, 300, 300, NULL, NULL, NULL, pSelf
    m2m [esi].hWnd, eax
MethodEnd
 
Method MyApp.Run, uses esi
    local msg:MSG
  
@@:
    invoke GetMessage, addr msg, NULL, 0, 0
    cmp eax, 0
    je @f
    invoke DispatchMessage, addr msg
    jmp @b
@@:
    mov eax, msg.wParam
MethodEnd
 
start proc
    SysInit
  
    OCall $ObjTmpl(MyApp)::MyApp.Init
    OCall $ObjTmpl(MyApp)::MyApp.Run
    OCall $ObjTmpl(MyApp)::MyApp.Done
      
    SysDone
    invoke ExitProcess, 0
start endp
      
end

完成