弹出右键菜单的代码,有点弄不明白,该怎么解决

弹出右键菜单的代码,有点弄不明白
罗云彬win32汇编那本书,第5章,关于右键弹出菜单是如下一段代码。
根据书后面的内容,我在代码上作点修改,在TrackPopupMenu函数中,我把TMP_LEFTALIGN改成TMP_RIGHTALIGH,但是在EXE文件中右键弹出的菜单还是在鼠标坐标的右侧,而并没有显现在鼠标
坐标的左侧,这是为什么呢?

;********************************************************************
; 按下右键时弹出一个POPUP菜单
;********************************************************************
.elseif eax == WM_RBUTTONDOWN
invoke GetCursorPos,addr @stPos
invoke TrackPopupMenu,hSubMenu,TPM_LEFTALIGN,@stPos.x,@stPos.y,NULL,hWnd,NULL
;********************************************************************
.elseif eax == WM_CLOSE
call _Quit
;********************************************************************
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
;********************************************************************
xor eax,eax
ret

------解决方案--------------------
应该不会吧,除非是左边空间不够放置弹出菜单了