It is usually made using dom method. I can show a quick sketch of an hta submit to result in a google search resultant page. I use radio button instead of checkbox because it fits in the picture (querystring) better. Checkbox works similarly; but radio button has an oddity in the detail (as you see) in the constructor to make it work which checkboxes do not suffer from. Other details in the construction may be helpful too.
[tt]
<html>
<head>
<hta:application id="htaid" />
<script type="text/vbscript" language="vbscript">
sub doit
dim oform, otext, osubmit
set oform=document.formname
set otext=document.createelement("input")
with otext
.type="text"
.value="Aristophanes"
.name="q"
end with
set osubmit=document.createelement("input")
with osubmit
'no name, if you need one, name it anything other than "submit"
.type="submit"
.value="submit"
end with
with oform
.appendChild otext
.appendChild document.createelement("br")
.appendChild osubmit
.appendChild document.createelement("br")
.action="[ignore]
[/ignore]"
.method="get"
.attachEvent "onsubmit", getRef("doexit")
end with
set osubmit=nothing
set otext=nothing
dim a, aa 'same dimension
a=array("lang_en","lang_fr","lang_el")
aa=array("English","French","Greek")
dim oradio
for i=0 to ubound(a)
'this does not work for radio
'set oradio=document.createelement("input")
'radio button's oddity
'for ie, must include both type and name, no less in the constructor.
set oradio=document.createelement("<input type='radio' name='lr'>")
with oradio
.value=a(i)
end with
with oform
.appendChild oradio
.appendchild document.createTextNode(aa(i))
.appendchild document.createElement("br")
end with
set oradio=nothing
next
set oform=nothing
dim ogen
set ogen=document.getElementById("generator")
ogen.parentNode.removeChild ogen
set ogen=nothing
end sub
sub doexit
self.close
end sub
</script>
</head>
<body>
<form name="formname" id="formid">
</form>
<button id="generator" onclick="doit" language="vbscript">do it</button><br />
</body>
</html>
[/tt]