This tutorial demonstrates the list box.

/* All user scripts should derive from the base "Application" class */
require ("Application");
require ("WindowsSupport");
class ListBoxExample Application
{
window;
}
// Fill the combo box with choices
method ListBoxExample.FillCombo(lb)
{
local current = lb.GetWindowText();
// Clear the combo box if we need to.
lb.Clear();
lb.ResetContent();
// Add some options to the combo box
lb.AddString("String 1");
lb.AddString("String 2");
// If there was an existing choice, reselect it
lb.SelectString(-1, current);
}
// This is called when the combo box is selected
method ListBoxExample.ComboSelected(lb)
{
princ ("You selected ", lb.GetWindowText(), "\n");
}
/* Write the 'main line' of the program here. */
method ListBoxExample.constructor ()
{
local win = new GWindow();
local rect = CreateRect(10, 10, 400, 400);
win.Create (0, rect, "ListBox Example", WS_OVERLAPPEDWINDOW, 0);
win.MessageHandler (WM_DESTROY, `(!destroyed_p(@self) ? destroy(@self) : nil));
.window = win;
.window.SetBackground (0, GetSysColor (COLOR_3DFACE), 0);
// ------- List box example starts here
// Create a combo box. Use CBS_* to set the options. An editable combo
// uses CBS_DROPDOWN.
local lb = win.CreateControl (GComboBox, 5, 5, 200, 20,
"ExampleListBox", CBS_DROPDOWNLIST | CBS_SORT);
// If the window has a different background, make sure the combo box
// stays white.
lb.SetChildBackground (0, GetSysColor (COLOR_WINDOW), 0);
// If we want to fill the combo when the person drops it down, do this
win.CommandHandler (CBN_DROPDOWN, lb, `(@self).FillCombo(@lb));
// Otherwise we could just do this to fill it once at the start
// .FillCombo(lb);
// Trigger an event when the user selects an option
win.CommandHandler (CBN_SELCHANGE, lb, `(@self).ComboSelected(@lb));
// ------- List box example ends here
win.ShowWindow (SW_SHOW);
}
/* Any code to be run when the program gets shut down. */
method ListBoxExample.destructor ()
{
if (instance_p(.window))
destroy (.window);
}
/* Start the program by instantiating the class. */
ApplicationSingleton (ListBoxExample);
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.