void FillSubType(ListBox& listboxMajor, ListBox& listboxMinor) { const GUIDINFO *pSubtype; UINT nSelection = 0; listboxMajor.GetCurrentSelection(&nSelection); int nMajorType; // First clear the subtype list listboxMinor.ClearItems(); // If the "don't care" item was selected, clear and exit if (nSelection == 0) { listboxMinor.AddString(L"<No subtypes>\0"); listboxMinor.Select(0); return; } else { nMajorType = nSelection - 1; } // Determine how to fill the minor type list, based on the // currently selected major type. pSubtype = pSubTypes[nMajorType]; // If there's no associated subtype, just add a default if (!pSubtype) { listboxMinor.AddString(L"<No subtypes>\0"); listboxMinor.Select(0); return; } else { // Set a default item for "don't care" listboxMinor.AddString(L"<Don't care>\0"); int i=0; // Fill the subtype list box. Enter N item data to the N+1 list slot. while (pSubtype[i].pGUID != NULL) { listboxMinor.AddItem(pSubtype[i].szName, (void *) pSubtype[i].pGUID); i++; } listboxMinor.Select(0); } }
void EnableSecondTypePair( ListBox& ListMajor, ListBox& ListMajor2, ListBox& ListMinor2 ) { // If there is no selection in the first major type listbox, // clear and disable the second major/minor type listboxes. UINT selection = 0; ListMajor.GetCurrentSelection(&selection); if (selection == 0) { ListMajor2.Select(0); FillSubType(ListMajor2, ListMinor2); ListMajor2.Enable(FALSE); ListMinor2.Enable(FALSE); } else { ListMajor2.Enable(TRUE); ListMinor2.Enable(TRUE); } }
void FillMajorTypes(ListBox& listbox) { listbox.ClearItems(); // Fill the specified list box with major type name/GUID for (int i=0; i < NUM_MAJOR_TYPES; i++) { listbox.AddItem(majortypes[i].szName, (void *) majortypes[i].pGUID); } listbox.Select(0); }