Hello,
this is an IupCbox example. Cbox is a container for position the elements in absolute coordinates. IupMatrix is not included here. This would need iupcontrols.dll which calls some more dlls and which needs another approach.
@John - I would be interested. Creating an exe file and linking to Iup.rc does not make much difference to me. Do you notice a difference?
This is what I have done: copy iup.rc, pen.cur, tecgraf.ico, iup.manifest from folder /iup/etc to folder projectsB\IUP. Create cbox1.exe by removing the comment from:
'include     "$/inc/RTL32.inc" in cbox1.o2bas. 
In a Dos Window in projectsB\IUP I call these commands:
windres -iiup.rc -oiup.res -Ores
..\..\tools\LinkRes2Exe.exe iup.res cbox1.exe
GoRc.exe cannot process Iup.rc as is. In a project with WinResources Charles has already used a resource file which would work similar like Iup.rc.
Roland
$ filename "cbox1.exe"
'include     "$/inc/RTL32.inc"
'include     "$/inc/console.inc"
includepath "iup/"      
extern lib "IUP/iup.dll" cdecl 
include "iup.h"
'overriding const unsigned char* pixmap in iup.h
Ihandle*  IupImage      (int width, int height, byte *pixmap)
Ihandle*  IupImageRGB   (int width, int height, byte *pixmap)
Ihandle*  IupImageRGBA  (int width, int height, byte *pixmap)
end extern
extern cdecl 
       
cr=chr(13,10)
byte img_bits1[] => 
{
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1
,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1
,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1
,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1
,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1
,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1
,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,0,0,2,2,2,0,0,2,0,2,2,0,0,0,2,2,2
,2,2,2,0,2,0,0,2,0,0,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,2
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,0,2,2,2,0,2,0,0,0,0,0,2,2
,2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,2,2,2
,2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2
,2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,2,0,0,2,0,2,2,0,0,0,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
byte img_bits2[] => 
{
 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,2,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,2,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2
,2,2,2,2,2,2,2,2,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,0,3,0,3,0,3,3,0,3,3,3,1,1,0,3,3,3,0,0,3,0,3,3,0,0,0,3,3,3
,3,3,3,0,3,0,0,3,0,0,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3
,3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,3,0,3,0,3,3,3,0,3,0,3,3,3,0,3,3
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,3,3,3,0,3,0,3,3,0,3,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3
,3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,0,0,3,3,0,0,3,0,3,3,0,0,0,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,0,3,3,3,0,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
,2,2,2,2,2,2,2,3,3,3,3,3,3,3,1,1,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,2,2,2,3,3,3,3,3,3,3,3,1,1,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
}
function createtree() as sys
  sys tree = IupTree()
  IupSetAttributes(tree, "FONT=COURIER_NORMAL_12, NAME=Figures,
                          RASTERSIZE=180x180, CX=600, CY=10" )
  return tree
end function
sub func_1 ()
  sys cbox, cnv_1, dlg, img, 
    frm_1, frm_2, frm_3, hbox, ctrl_1,
    list_1, list_2, list_3, text_1, ml_1
  img = IupImage(32,32, @img_bits1)
  IupSetHandle ("img1", img) 
  IupSetAttribute (img, "0", "0 0 0") 
  IupSetAttribute (img, "1", "BGCOLOR")
  IupSetAttribute (img, "2", "255 0 0")
  img = IupImage(32,32, @img_bits2)
  IupSetHandle ("img2", img) 
  IupSetAttribute (img, "0", "0 0 0") 
  IupSetAttribute (img, "1", "0 255 0")
  IupSetAttribute (img, "2", "BGCOLOR")
  IupSetAttribute (img, "3", "255 0 0")
  'bottom-up
  b1=IupButton("Button Text",NULL) : b2=IupButton("",NULL) : b3=IupButton("",NULL)
  IupSetAttribute(b1, "CINDEX","1")
  IupSetAttributes(b2, "IMAGE=img1, CINDEX=2")
  IupSetAttributes(b3, "IMAGE=img1,IMPRESS=img2,CINDEX=3")
  vbox1 = IupVbox(b1,b2,b3,NULL)
  frm_1 = IupFrame(vbox1)
  IupSetAttributes(frm_1,"TITLE=IupButton, CX=10, CY=180")
  'bottom-up
  l1=IupLabel("Label Text") : l2=IupLabel(NULL) : l3=IupLabel(NULL)
  IupSetAttribute(l1, "CINDEX","1")
  IupSetAttributes(l2, "SEPARATOR=HORIZONTAL,CINDEX=2")
  IupSetAttributes(l3, "IMAGE=img1,CINDEX=3")
  vbox2 = IupVbox(l1, l2, l3, NULL)
  frm_2 = IupFrame(vbox2)  
  IupSetAttributes(frm_2,"TITLE=IupLabel, CX=200, CY=250")
  'bottom-up 
  'checkboxes 
  t1=IupToggle("Toggle Text", NULL) : t2=IupToggle("", NULL)
    IupSetAttributes(t1, "VALUE=ON, CINDEX=1")
    IupSetAttributes(t2, "IMAGE=img1, IMPRESS=img2, CINDEX=2")
    'show verical
    vb1=IupVbox(t1, t2, NULL)
  'radios
  t3=IupToggle("Toggle Text", NULL) : t4=IupToggle("Toggle Text", NULL)
    IupSetAttributes(t3, "CINDEX=3")
    IupSetAttributes(t4, "CINDEX=4")
    'show vertical
    vb2=IupVbox(t3,t4)
    'change to radios
    radio=IupRadio(vb2)
    'frame them
    frame=IupFrame(radio)
    IupSetAttribute(frame, "TITLE", "IupRadio")
  vbox3=IupVbox(vb1,frame, NULL)
  frm_3=IupFrame(vbox3)
  IupSetAttribute(frm_3,"TITLE","IupToggle")
  IupSetAttribute(frm_3,"CX","400")
  IupSetAttribute(frm_3,"CY","250")
  text_1 = IupText( NULL)
  IupSetAttribute(text_1,"VALUE","IupText Text")
  IupSetAttributes(text_1,"SIZE=80x, CINDEX=1, CX=10, CY=100")
  ml_1 = IupMultiLine( NULL)
  IupSetAttribute(ml_1,"VALUE","IupMultiline Text" & cr & "Second Line" & cr & "Third Line" & cr)
  IupSetAttributes(ml_1,"SIZE=80x60, CINDEX=1, CX=200, CY=100")
  list_1 = IupList( NULL)
  IupSetAttributes(list_1,"VALUE=1, CINDEX=1, CX=10, CY=10")
  IupSetAttribute(list_1,"1","Item 1 Text")
  IupSetAttribute(list_1,"2","Item 2 Text")
  IupSetAttribute(list_1,"3","Item 3 Text")
  list_2 = IupList( NULL)
  IupSetAttributeS(list_2,"DROPDOWN=YES, VALUE=2, CINDEX=2, CX=200, CY=10")
  IupSetAttribute(list_2,"1","Item 1 Text")
  IupSetAttribute(list_2,"2","Item 2 Text")
  IupSetAttribute(list_2,"3","Item 3 Text")
  list_3 = IupList( NULL)
  IupSetAttributes(list_3,"EDITBOX=YES, VALUE=3, CINDEX=3, CX=400, CY=10")
  IupSetAttribute(list_3,"1","Item 1 Text")
  IupSetAttribute(list_3,"2","Item 2 Text")
  IupSetAttribute(list_3,"3","Item 3 Text")
  cnv_1 = IupCanvas( NULL)
  IupSetAttributes(cnv_1,"RASTERSIZE=100x100, POSX=0, POSY=0, CX=400, CY=150")
  IupSetAttribute(cnv_1,"BGCOLOR","128 255 0") 'green
  ctrl_1 = IupVal(NULL)
  IupSetAttributes(ctrl_1,"CX=600, CY=200")
  cbox = IupCbox(
    text_1,
    ml_1,
    list_1,
    list_2,
    list_3,
    cnv_1,
    ctrl_1,
    createtree(),
    frm_1,
    frm_2,
    frm_3,
    NULL)
  IupSetAttribute(cbox,"SIZE","480x200")
  hbox = IupHbox(cbox, NULL)
  IupSetAttribute(hbox, "MARGIN"," 10x10")
  dlg = IupDialog(hbox)
  IupSetHandle("dlg",dlg)
  IupSetAttribute(dlg,"TITLE","Cbox Test")
end sub
sub main()
  IupOpen(0,0)            
  func_1()
  IupShowXY(IupGetHandle("dlg"),IUP_CENTER,IUP_CENTER)
  IupMainLoop()
  IupClose()  
end sub
main()
.