Can you guys help me to create a table inside the windows with x no. rows and y no. of columns
format PE GUI 4.0
entry start
include 'C:\Fasm\INCLUDE\win32axp.inc'
IDM_FILE EQU 100
IDM_START EQU 105
IDM_STOP EQU 110
IDM_EXIT EQU 115
IDM_EDIT EQU 200
IDM_PREFS EQU 205
IDM_COLS EQU 210
IDM_HELP EQU 300
IDM_INSTRUCTS EQU 305
IDM_ABOUT EQU 310
section '.text' code readable executable
start:
invoke GetModuleHandle, 0
mov [wc.hInstance],eax
invoke RegisterClass, wc
invoke LoadMenu, [wc.hInstance], 20
mov [menuHnd], eax
invoke CreateWindowEx, 0, testClass, testTitle, WS_VISIBLE+WS_OVERLAPPEDWINDOW, 300, 300, 300, 200, NULL, eax, [wc.hInstance], NULL
mov [hWndMain], eax
jmp msgLoop
;--------------------------------------------------------------------------------------------------
msgLoop:
invoke GetMessage, msg, NULL, 0, 0
cmp eax, 1
jb endLoop
jne msgLoop
invoke TranslateMessage, msg
invoke DispatchMessage, msg
jmp msgLoop
endLoop:
invoke ExitProcess, [msg.wParam]
;--------------------------------------------------------------------------------------------------
proc WindowProc hWnd, wMsg, wParam, lParam
push ebx esi edi
cmp [wMsg], WM_COMMAND
je .wmCommand
cmp [wMsg], WM_DESTROY
je .wmDestroy
.defWndProc:
invoke DefWindowProc, [hWnd], [wMsg], [wParam], [lParam]
jmp .wmFinish
.wmCommand:
mov eax, [wParam]
and eax, 0x0FFFF
cmp eax, IDM_START
je .start
cmp eax, IDM_STOP
je .stop
cmp eax, IDM_EXIT
je .wmDestroy
jmp .defWndProc
.start:
mov [mii.cbSize], sizeof.MENUITEMINFO
mov [mii.fMask], MIIM_DATA + MIIM_ID + MIIM_STRING
mov [mii.dwTypeData], stopStr
invoke lstrlen, stopStr
mov [mii.cch], eax
mov [mii.wID], IDM_STOP
invoke GetSubMenu, [menuHnd], 0
invoke SetMenuItemInfo, eax, 0, TRUE, mii
jmp .wmCommandFinish
.stop:
mov [mii.cbSize], sizeof.MENUITEMINFO
mov [mii.fMask], MIIM_DATA + MIIM_ID + MIIM_STRING
mov [mii.dwTypeData], startStr
invoke lstrlen, startStr
mov [mii.cch], eax
mov [mii.wID], IDM_START
invoke GetSubMenu, [menuHnd], 0
invoke SetMenuItemInfo, eax, 0, TRUE, mii
.wmCommandFinish:
xor eax, eax
jmp .wmFinish
.wmDestroy:
invoke PostQuitMessage, 0
xor eax, eax
.wmFinish:
pop edi esi ebx
ret
endp
;**************************************************************************************************
section '.data' data readable writeable
wc WNDCLASS 0, WindowProc, 0, 0, NULL, NULL, NULL, COLOR_BTNFACE+1, NULL, testClass
msg MSG
hWndMain dd 0
testClass db "testClass", 0
testTitle db "Test application", 0
menuHnd dd ?
stopStr db '&Stop', 0
startStr db '&Start',0
mii MENUITEMINFO
;**************************************************************************************************
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32, 'USER32.DLL'
include 'C:\Fasm\INCLUDE\api\Kernel32.inc'
include 'C:\Fasm\INCLUDE\api\User32.inc'
;**************************************************************************************************
section '.rsrc' resource data readable
; resource directory
directory RT_MENU,menus
; resource subdirectories
resource menus, 20, LANG_ENGLISH + SUBLANG_DEFAULT, testMenu
menu testMenu
menuitem '&File', IDM_FILE, MFR_POPUP
menuitem '&Start', IDM_START
menuseparator
menuitem 'E&xit', IDM_EXIT, MFR_END
menuitem '&Edit', IDM_EDIT, MFR_POPUP
menuitem '&Colours', IDM_COLS
menuitem '&Preferences', IDM_PREFS, MFR_END
menuitem '&Help', IDM_HELP, MFR_POPUP + MFR_END
menuitem '&Instructions', IDM_INSTRUCTS
menuitem '&About...', IDM_ABOUT, MFR_END