You have to have your own domain name like
mydomain.com etc.
That
mydomain.com has to have
name servers allocated at your domain name
registrar like godaddy.com or enom.com etc. in the form
ns1.dnsprovider.com and
ns2.dnsprovider.com etc.
Unless you are running your own nameserver software (
bind) on your XAMPP server then the only place you can create a subdomain is at your
mydomain.com DNS Service provider like zoneedit.com or noip.com etc. in the form
subdmain.mydomain.com
This
subdmain.mydomain.com then has to propagate around the Internet before anyone can use the
subdomain.mydomain.com address just like the main
mydomain.com address had to propagate after it was created or edited.
cPanel hosting services have their own name server software (bind) and all cPanel does is act as a front end to various server functions and one of those functions is to configure
named.conf (the
bind configuration file) and the rest of the needed configurations like email etc., with your new subdomain details.
Unfortunately if you are not running your own DNS but rely on a DNS Service (especially if you have a dynamic IP) then there are no control panels that I know of that would do this job.
Once you have created a subdomain at your DNS Service of choice then ZPanel can handle subdomains in the Admin panel under User Management.
Also if you were using the Linux OS then this would not be a problem as Bind is included in most Distros. Then there are a plethora of control panels that would do the job nicely.
Not much help to you I'm afraid except perhaps to explain the vagaries of the world of DNS.