SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
This sample illustrates a multi-column control used for data input.
The source code is located at C:\Program Files (x86)\Softelvdm\SftBox OCX 5.0\Samples\VC++\DataInput\DataInputDlg.cpp or C:\Program Files\Softelvdm\SftBox OCX 5.0\Samples\VC++\DataInput\DataInputDlg.cpp (on 32-bit Windows versions).
BOOL CDataInputDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon ISftBoxPtr vCompanyList = m_CompanyList.GetControlUnknown(); vCompanyList->PutFont(NULL); // use the form's default font vCompanyList->Headers->PutFont(NULL); vCompanyList->Edit->PutFont(NULL); // make a bold font IFontPtr pFont = vCompanyList->GetFont();; IFontPtr pFontNew; HRESULT hr = pFont->Clone(&pFontNew); ASSERT(SUCCEEDED(hr)); pFontNew->QueryInterface(IID_IFontDisp, (void**) &m_pBoldFont); pFontNew->put_Bold(TRUE); // Load the bullet bitmap PICTDESC PictDesc; PictDesc.cbSizeofstruct = sizeof(PICTDESC); PictDesc.picType = PICTYPE_BITMAP; PictDesc.bmp.hbitmap = LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BULLET)); PictDesc.bmp.hpal = NULL; hr = OleCreatePictureIndirect(&PictDesc, IID_IPictureDisp, TRUE, (void**)&m_pIPictureDispBullet); ASSERT(SUCCEEDED(hr)); vCompanyList->BulkUpdate = VARIANT_TRUE; AddCompany("Softel vdm, Inc.", "", "", "5401 S Kirkman Rd Ste 310", "Punta Gorda", "FL", "32819", "United States", "(941) 505-8600", "(941) 882-1800"); AddCompany("Alfreds Futterkiste", "Maria Anders", "Sales Representative", "Obere Str. 57", "Berlin", "", "12209", "Germany", "030-0074321", "030-0076545"); AddCompany("Ana Trujillo Emparedados y helados", "Ana Trujillo", "Owner", "Avda. de la Constituci?n 2222", "M?xico D.F.", "", "05021", "Mexico", "(5) 555-4729", "(5) 555-3745"); AddCompany("Antonio Moreno Taquer?a", "Antonio Moreno", "Owner", "Mataderos 2312", "M?xico D.F.", "", "05023", "Mexico", "(5) 555-3932", ""); AddCompany("Around the Horn", "Thomas Hardy", "Sales Representative", "120 Hanover Sq.", "London", "", "WA1 1DP", "UK", "(171) 555-7788", "(171) 555-6750"); AddCompany("Berglunds snabbk?p", "Christina Berglund", "Order Administrator", "Berguvsv?gen 8", "Lule?", "", "S-958 22", "Sweden", "0921-12 34 65", "0921-12 34 67"); AddCompany("Blauer See Delikatessen", "Hanna Moos", "Sales Representative", "Forsterstr. 57", "Mannheim", "", "68306", "Germany", "0621-08460", "0621-08924"); AddCompany("Blondel p?re et fils", "Fr?d?rique Citeaux", "Marketing Manager", "24, place Kl?ber", "Strasbourg", "", "67000", "France", "88.60.15.31", "88.60.15.32"); AddCompany("B?lido Comidas preparadas", "Mart?n Sommer", "Owner", "C/ Araquil, 67", "Madrid", "", "28023", "Spain", "(91) 555 22 82", "(91) 555 91 99"); AddCompany("Bon app'", "Laurence Lebihan", "Owner", "12, rue des Bouchers", "Marseille", "", "13008", "France", "91.24.45.40", "91.24.45.41"); AddCompany("Bottom-Dollar Markets", "Elizabeth Lincoln", "Accounting Manager", "23 Tsawassen Blvd.", "Tsawassen", "BC", "T2F 8M4", "Canada", "(604) 555-4729", "(604) 555-3745"); AddCompany("B's Beverages", "Victoria Ashworth", "Sales Representative", "Fauntleroy Circus", "London", "", "EC2 5NT", "UK", "(171) 555-1212", ""); AddCompany("Cactus Comidas para llevar", "Patricio Simpson", "Sales Agent", "Cerrito 333", "Buenos Aires", "", "1010", "Argentina", "(1) 135-5555", "(1) 135-4892"); AddCompany("Centro comercial Moctezuma", "Francisco Chang", "Marketing Manager", "Sierras de Granada 9993", "M?xico D.F.", "", "05022", "Mexico", "(5) 555-3392", "(5) 555-7293"); AddCompany("Chop-suey Chinese", "Yang Wang", "Owner", "Hauptstr. 29", "Bern", "", "3012", "Switzerland", "0452-076545", ""); AddCompany("Com?rcio Mineiro", "Pedro Afonso", "Sales Associate", "Av. dos Lus?adas, 23", "S?o Paulo", "SP", "05432-043", "Brazil", "(11) 555-7647", ""); AddCompany("Consolidated Holdings", "Elizabeth Brown", "Sales Representative", "Berkeley Gardens 12 Brewery ", "London", "", "WX1 6LT", "UK", "(171) 555-2282", "(171) 555-9199"); AddCompany("Drachenblut Delikatessen", "Sven Ottlieb", "Order Administrator", "Walserweg 21", "Aachen", "", "52066", "Germany", "0241-039123", "0241-059428"); AddCompany("Du monde entier", "Janine Labrune", "Owner", "67, rue des Cinquante Otages", "Nantes", "", "44000", "France", "40.67.88.88", "40.67.89.89"); AddCompany("Eastern Connection", "Ann Devon", "Sales Agent", "35 King George", "London", "", "WX3 6FW", "UK", "(171) 555-0297", "(171) 555-3373"); AddCompany("Ernst Handel", "Roland Mendel", "Sales Manager", "Kirchgasse 6", "Graz", "", "8010", "Austria", "7675-3425", "7675-3426"); AddCompany("Familia Arquibaldo", "Aria Cruz", "Marketing Assistant", "Rua Or?s, 92", "S?o Paulo", "SP", "05442-030", "Brazil", "(11) 555-9857", ""); AddCompany("FISSA Fabrica Inter. Salchichas S.A.", "Diego Roel", "Accounting Manager", "C/ Moralzarzal, 86", "Madrid", "", "28034", "Spain", "(91) 555 94 44", "(91) 555 55 93"); AddCompany("Folies gourmandes", "Martine Ranc?", "Assistant Sales Agent", "184, chauss?e de Tournai", "Lille", "", "59000", "France", "20.16.10.16", "20.16.10.17"); AddCompany("Folk och f? HB", "Maria Larsson", "Owner", "?kergatan 24", "Br?cke", "", "S-844 67", "Sweden", "0695-34 67 21", ""); AddCompany("Frankenversand", "Peter Franken", "Marketing Manager", "Berliner Platz 43", "M?nchen", "", "80805", "Germany", "089-0877310", "089-0877451"); AddCompany("France restauration", "Carine Schmitt", "Marketing Manager", "54, rue Royale", "Nantes", "", "44000", "France", "40.32.21.21", "40.32.21.20"); AddCompany("Franchi S.p.A.", "Paolo Accorti", "Sales Representative", "Via Monte Bianco 34", "Torino", "", "10100", "Italy", "011-4988260", "011-4988261"); AddCompany("Furia Bacalhau e Frutos do Mar", "Lino Rodriguez ", "Sales Manager", "Jardim das rosas n. 32", "Lisboa", "", "1675", "Portugal", "(1) 354-2534", "(1) 354-2535"); AddCompany("Galer?a del gastr?nomo", "Eduardo Saavedra", "Marketing Manager", "Rambla de Catalu?a, 23", "Barcelona", "", "08022", "Spain", "(93) 203 4560", "(93) 203 4561"); AddCompany("Godos Cocina T?pica", "Jos? Pedro Freyre", "Sales Manager", "C/ Romero, 33", "Sevilla", "", "41101", "Spain", "(95) 555 82 82", ""); AddCompany("Gourmet Lanchonetes", "Andr? Fonseca", "Sales Associate", "Av. Brasil, 442", "Campinas", "SP", "04876-786", "Brazil", "(11) 555-9482", ""); AddCompany("Great Lakes Food Market", "Howard Snyder", "Marketing Manager", "2732 Baker Blvd.", "Eugene", "OR", "97403", "United States", "(503) 555-7555", ""); AddCompany("GROSELLA-Restaurante", "Manuel Pereira", "Owner", "5? Ave. Los Palos Grandes", "Caracas", "DF", "1081", "Venezuela", "(2) 283-2951", "(2) 283-3397"); AddCompany("Hanari Carnes", "Mario Pontes", "Accounting Manager", "Rua do Pa?o, 67", "Rio de Janeiro", "RJ", "05454-876", "Brazil", "(21) 555-0091", "(21) 555-8765"); AddCompany("HILARI?N-Abastos", "Carlos Hern?ndez", "Sales Representative", "Carrera 22 con Ave. Carlos Soublette #8-35", "San Crist?bal", "T?chira", "5022", "Venezuela", "(5) 555-1340", "(5) 555-1948"); AddCompany("Hungry Coyote Import Store", "Yoshi Latimer", "Sales Representative", "City Center Plaza 516 Main St.", "Elgin", "OR", "97827", "United States", "(503) 555-6874", "(503) 555-2376"); AddCompany("Hungry Owl All-Night Grocers", "Patricia McKenna", "Sales Associate", "8 Johnstown Road", "Cork", "Co. Cork", "", "Ireland", "2967 542", "2967 3333"); AddCompany("Island Trading", "Helen Bennett", "Marketing Manager", "Garden House Crowther Way", "Cowes", "Isle of Wight", "PO31 7PJ", "UK", "(198) 555-8888", ""); AddCompany("K?niglich Essen", "Philip Cramer", "Sales Associate", "Maubelstr. 90", "Brandenburg", "", "14776", "Germany", "0555-09876", ""); AddCompany("La corne d'abondance", "Daniel Tonini", "Sales Representative", "67, avenue de l'Europe", "Versailles", "", "78000", "France", "30.59.84.10", "30.59.85.11"); AddCompany("La maison d'Asie", "Annette Roulet", "Sales Manager", "1 rue Alsace-Lorraine", "Toulouse", "", "31000", "France", "61.77.61.10", "61.77.61.11"); AddCompany("Laughing Bacchus Wine Cellars", "Yoshi Tannamuri", "Marketing Assistant", "1900 Oak St.", "Vancouver", "BC", "V3F 2K1", "Canada", "(604) 555-3392", "(604) 555-7293"); AddCompany("Lazy K Kountry Store", "John Steel", "Marketing Manager", "12 Orchestra Terrace", "Walla Walla", "WA", "99362", "United States", "(509) 555-7969", "(509) 555-6221"); AddCompany("Lehmanns Marktstand", "Renate Messner", "Sales Representative", "Magazinweg 7", "Frankfurt a.M. ", "", "60528", "Germany", "069-0245984", "069-0245874"); AddCompany("Let's Stop N Shop", "Jaime Yorres", "Owner", "87 Polk St. Suite 5", "San Francisco", "CA", "94117", "United States", "(415) 555-5938", ""); AddCompany("LILA-Supermercado", "Carlos Gonz?lez", "Accounting Manager", "Carrera 52 con Ave. Bol?var #65-98 Llano Largo", "Barquisimeto", "Lara", "3508", "Venezuela", "(9) 331-6954", "(9) 331-7256"); AddCompany("LINO-Delicateses", "Felipe Izquierdo", "Owner", "Ave. 5 de Mayo Porlamar", "I. de Margarita", "Nueva Esparta", "4980", "Venezuela", "(8) 34-56-12", "(8) 34-93-93"); AddCompany("Lonesome Pine Restaurant", "Fran Wilson", "Sales Manager", "89 Chiaroscuro Rd.", "Portland", "OR", "97219", "United States", "(503) 555-9573", "(503) 555-9646"); AddCompany("Magazzini Alimentari Riuniti", "Giovanni Rovelli", "Marketing Manager", "Via Ludovico il Moro 22", "Bergamo", "", "24100", "Italy", "035-640230", "035-640231"); AddCompany("Maison Dewey", "Catherine Dewey", "Sales Agent", "Rue Joseph-Bens 532", "Bruxelles", "", "B-1180", "Belgium", "(02) 201 24 67", "(02) 201 24 68"); AddCompany("M?re Paillarde", "Jean Fresni?re", "Marketing Assistant", "43 rue St. Laurent", "Montr?al", "Qu?bec", "H1J 1C3", "Canada", "(514) 555-8054", "(514) 555-8055"); AddCompany("Morgenstern Gesundkost", "Alexander Feuer", "Marketing Assistant", "Heerstr. 22", "Leipzig", "", "04179", "Germany", "0342-023176", ""); AddCompany("North/South", "Simon Crowther", "Sales Associate", "South House 300 Queensbridge", "London", "", "SW7 1RZ", "UK", "(171) 555-7733", "(171) 555-2530"); AddCompany("Oc?ano Atl?ntico Ltda.", "Yvonne Moncada", "Sales Agent", "Ing. Gustavo Moncada 8585 Piso 20-A", "Buenos Aires", "", "1010", "Argentina", "(1) 135-5333", "(1) 135-5535"); AddCompany("Old World Delicatessen", "Rene Phillips", "Sales Representative", "2743 Bering St.", "Anchorage", "AK", "99508", "United States", "(907) 555-7584", "(907) 555-2880"); AddCompany("Ottilies K?seladen", "Henriette Pfalzheim", "Owner", "Mehrheimerstr. 369", "K?ln", "", "50739", "Germany", "0221-0644327", "0221-0765721"); AddCompany("Paris sp?cialit?s", "Marie Bertrand", "Owner", "265, boulevard Charonne", "Paris", "", "75012", "France", "(1) 42.34.22.66", "(1) 42.34.22.77"); AddCompany("Pericles Comidas cl?sicas", "Guillermo Fern?ndez", "Sales Representative", "Calle Dr. Jorge Cash 321", "M?xico D.F.", "", "05033", "Mexico", "(5) 552-3745", "(5) 545-3745"); AddCompany("Piccolo und mehr", "Georg Pipps", "Sales Manager", "Geislweg 14", "Salzburg", "", "5020", "Austria", "6562-9722", "6562-9723"); AddCompany("Princesa Isabel Vinhos", "Isabel de Castro", "Sales Representative", "Estrada da sa?de n. 58", "Lisboa", "", "1756", "Portugal", "(1) 356-5634", ""); AddCompany("Que Del?cia", "Bernardo Batista", "Accounting Manager", "Rua da Panificadora, 12", "Rio de Janeiro", "RJ", "02389-673", "Brazil", "(21) 555-4252", "(21) 555-4545"); AddCompany("Queen Cozinha", "L?cia Carvalho", "Marketing Assistant", "Alameda dos Can?rios, 891", "S?o Paulo", "SP", "05487-020", "Brazil", "(11) 555-1189", ""); AddCompany("QUICK-Stop", "Horst Kloss", "Accounting Manager", "Taucherstra?e 10", "Cunewalde", "", "01307", "Germany", "0372-035188", ""); AddCompany("Rancho grande", "Sergio Guti?rrez", "Sales Representative", "Av. del Libertador 900", "Buenos Aires", "", "1010", "Argentina", "(1) 123-5555", "(1) 123-5556"); AddCompany("Rattlesnake Canyon Grocery", "Paula Wilson", "Assistant Sales Representative", "2817 Milton Dr.", "Albuquerque", "NM", "87110", "United States", "(505) 555-5939", "(505) 555-3620"); AddCompany("Reggiani Caseifici", "Maurizio Moroni", "Sales Associate", "Strada Provinciale 124", "Reggio Emilia", "", "42100", "Italy", "0522-556721", "0522-556722"); AddCompany("Ricardo Adocicados", "Janete Limeira", "Assistant Sales Agent", "Av. Copacabana, 267", "Rio de Janeiro", "RJ", "02389-890", "Brazil", "(21) 555-3412", ""); AddCompany("Richter Supermarkt", "Michael Holz", "Sales Manager", "Grenzacherweg 237", "Gen?ve", "", "1203", "Switzerland", "0897-034214", ""); AddCompany("Romero y tomillo", "Alejandra Camino", "Accounting Manager", "Gran V?a, 1", "Madrid", "", "28001", "Spain", "(91) 745 6200", "(91) 745 6210"); AddCompany("Sant? Gourmet", "Jonas Bergulfsen", "Owner", "Erling Skakkes gate 78", "Stavern", "", "4110", "Norway", "07-98 92 35", "07-98 92 47"); AddCompany("Save-a-lot Markets", "Jose Pavarotti", "Sales Representative", "187 Suffolk Ln.", "Boise", "ID", "83720", "United States", "(208) 555-8097", ""); AddCompany("Seven Seas Imports", "Hari Kumar", "Sales Manager", "90 Wadhurst Rd.", "London", "", "OX15 4NB", "UK", "(171) 555-1717", "(171) 555-5646"); AddCompany("Simons bistro", "Jytte Petersen", "Owner", "Vinb?ltet 34", "K?benhavn", "", "1734", "Denmark", "31 12 34 56", "31 13 35 57"); AddCompany("Sp?cialit?s du monde", "Dominique Perrier", "Marketing Manager", "25, rue Lauriston", "Paris", "", "75016", "France", "(1) 47.55.60.10", "(1) 47.55.60.20"); AddCompany("Split Rail Beer & Ale", "Art Braunschweiger", "Sales Manager", "P.O. Box 555", "Lander", "WY", "82520", "United States", "(307) 555-4680", "(307) 555-6525"); AddCompany("Supr?mes d?lices", "Pascale Cartrain", "Accounting Manager", "Boulevard Tirou, 255", "Charleroi", "", "B-6000", "Belgium", "(071) 23 67 22 20", "(071) 23 67 22 21"); AddCompany("The Big Cheese", "Liz Nixon", "Marketing Manager", "89 Jefferson Way Suite 2", "Portland", "OR", "97201", "United States", "(503) 555-3612", ""); AddCompany("The Cracker Box", "Liu Wong", "Marketing Assistant", "55 Grizzly Peak Rd.", "Butte", "MT", "59801", "United States", "(406) 555-5834", "(406) 555-8083"); AddCompany("Toms Spezialit?ten", "Karin Josephs", "Marketing Manager", "Luisenstr. 48", "M?nster", "", "44087", "Germany", "0251-031259", "0251-035695"); AddCompany("Tortuga Restaurante", "Miguel Angel Paolino", "Owner", "Avda. Azteca 123", "M?xico D.F.", "", "05033", "Mexico", "(5) 555-2933", ""); AddCompany("Tradi??o Hipermercados", "Anabela Domingues", "Sales Representative", "Av. In?s de Castro, 414", "S?o Paulo", "SP", "05634-030", "Brazil", "(11) 555-2167", "(11) 555-2168"); AddCompany("Trail's Head Gourmet Provisioners", "Helvetius Nagy", "Sales Associate", "722 DaVinci Blvd.", "Kirkland", "WA", "98034", "United States", "(206) 555-8257", "(206) 555-2174"); AddCompany("Vaffeljernet", "Palle Ibsen", "Sales Manager", "Smagsl?get 45", "?rhus", "", "8200", "Denmark", "86 21 32 43", "86 22 33 44"); AddCompany("Victuailles en stock", "Mary Saveley", "Sales Agent", "2, rue du Commerce", "Lyon", "", "69004", "France", "78.32.54.86", "78.32.54.87"); AddCompany("Vins et alcools Chevalier", "Paul Henriot", "Accounting Manager", "59 rue de l'Abbaye", "Reims", "", "51100", "France", "26.47.15.10", "26.47.15.11"); AddCompany("Die Wandernde Kuh", "Rita M?ller", "Sales Representative", "Adenauerallee 900", "Stuttgart", "", "70563", "Germany", "0711-020361", "0711-035428"); AddCompany("Wartian Herkku", "Pirkko Koskitalo", "Accounting Manager", "Torikatu 38", "Oulu", "", "90110", "Finland", "981-443655", "981-443655"); AddCompany("Wellington Importadora", "Paula Parente", "Sales Manager", "Rua do Mercado, 12", "Resende", "SP", "08737-363", "Brazil", "(14) 555-8122", ""); AddCompany("White Clover Markets", "Karl Jablonski", "Owner", "305 - 14th Ave. S. Suite 3B", "Seattle", "WA", "98128", "United States", "(206) 555-4112", "(206) 555-4115"); AddCompany("Wilman Kala", "Matti Karttunen", "Owner/Marketing Assistant", "Keskuskatu 45", "Helsinki", "", "21240", "Finland", "90-224 8858", "90-224 8858"); AddCompany("Wolski Zajazd", "Zbyszek Piestrzeniewicz", "Owner", "ul. Filtrowa 68", "Warszawa", "", "01-012", "Poland", "(26) 642-7012", "(26) 642-7012"); vCompanyList->BulkUpdate = VARIANT_FALSE; vCompanyList->Columns->MakeOptimal(0); vCompanyList->Items->RecalcHorizontalExtent(0); PerformSort(0, sortSftBoxAscending); // Adjust horizontal extent so we can scroll to the right edge of the header CRect rect; m_CompanyList.GetClientRect(&rect); vCompanyList->Items->HorizontalExtent = vCompanyList->Items->HorizontalExtent + rect.Width(); vCompanyList->Items->Select("Softel vdm, Inc.", 0, 0, VARIANT_FALSE, VARIANT_TRUE, VARIANT_FALSE); ISftBoxPtr vCountryList = m_CountryList.GetControlUnknown(); vCountryList->PutFont(NULL); vCountryList->Edit->PutFont(NULL); vCountryList->Items->Add("Austria"); vCountryList->Items->Add("Australia"); vCountryList->Items->Add("Belgium"); vCountryList->Items->Add("Canada"); vCountryList->Items->Add("Switzerland"); vCountryList->Items->Add("Chile"); vCountryList->Items->Add("China"); vCountryList->Items->Add("Costa Rica"); vCountryList->Items->Add("Cuba"); vCountryList->Items->Add("Germany"); vCountryList->Items->Add("Denmark"); vCountryList->Items->Add("Egypt"); vCountryList->Items->Add("Spain"); vCountryList->Items->Add("Finland"); vCountryList->Items->Add("France"); vCountryList->Items->Add("Great Britain"); vCountryList->Items->Add("Greenland"); vCountryList->Items->Add("Greece"); vCountryList->Items->Add("Hong Kong"); vCountryList->Items->Add("Ireland"); vCountryList->Items->Add("Israel"); vCountryList->Items->Add("Iceland"); vCountryList->Items->Add("Italy"); vCountryList->Items->Add("Japan"); vCountryList->Items->Add("South Korea"); vCountryList->Items->Add("Liechtenstein"); vCountryList->Items->Add("Lithuania"); vCountryList->Items->Add("Luxembourg"); vCountryList->Items->Add("Mexico"); vCountryList->Items->Add("Netherlands"); vCountryList->Items->Add("The Netherlands"); vCountryList->Items->Add("Norway"); vCountryList->Items->Add("New Zealand"); vCountryList->Items->Add("Puerto Rico"); vCountryList->Items->Add("Portugal"); vCountryList->Items->Add("Russia"); vCountryList->Items->Add("Sweden"); vCountryList->Items->Add("Singapore"); vCountryList->Items->Add("United Kingdom"); vCountryList->Items->Add("Yugoslavia"); vCountryList->Items->Add("South Africa"); vCountryList->Items->Sort(-1, 0, sortSftBoxAscending); vCountryList->Items->Insert("United States", 0); vCountryList->Items->Selection = 0; vCountryList->Columns->MakeOptimal(0); vCountryList->Items->RecalcHorizontalExtent(0); return TRUE; // return TRUE unless you set the focus to a control } void CDataInputDlg::AddCompany(LPCTSTR CompName, LPCTSTR NotUsed1, LPCTSTR NotUsed2, LPCTSTR Address, LPCTSTR City, LPCTSTR State, LPCTSTR ZIP, LPCTSTR Country, LPCTSTR Phone, LPCTSTR Fax) { long index; ISftBoxPtr vCompanyList = m_CompanyList.GetControlUnknown(); index = vCompanyList->Items->Add(CompName); if (lstrcmp(Country, "United States") == 0) { vCompanyList->Cell[index][0]->putref_Font(m_pBoldFont); vCompanyList->Cell[index][0]->Image->PutRefPicture(m_pIPictureDispBullet); vCompanyList->Cell[index][0]->ImageHAlign = halignSftBoxRight; } vCompanyList->Cell[index][1]->Text = Address; vCompanyList->Cell[index][2]->Text = City; vCompanyList->Cell[index][3]->Text = State; vCompanyList->Cell[index][4]->Text = ZIP; vCompanyList->Cell[index][5]->Text = Country; vCompanyList->Cell[index][6]->Text = Phone; vCompanyList->Cell[index][7]->Text = Fax; } void CDataInputDlg::PerformSort(short column, SftBoxSortConstants dir) { m_sortDirection = dir; m_sortedColumn = column; ISftBoxPtr vCompanyList = m_CompanyList.GetControlUnknown(); vCompanyList->Headers->ClearImages(); if (m_sortDirection == sortSftBoxAscending) vCompanyList->Header[column]->Image->Appearance = sftImageSortAsc; else vCompanyList->Header[column]->Image->Appearance = sftImageSortDesc; vCompanyList->Items->Sort(-1, m_sortedColumn, m_sortDirection); } void CDataInputDlg::OnItemClickCompanylist(long Part, long AreaType, long ItemIndex, short ColNum, short Button, short Shift) { if (AreaType == areaSftBoxColumn) { if (m_sortedColumn != ColNum || m_sortDirection != sortSftBoxAscending) PerformSort(ColNum, sortSftBoxAscending); else PerformSort(ColNum, sortSftBoxDescending); } } void CDataInputDlg::OnItemDblClkCompanylist(long Part, long AreaType, long ItemIndex, short ColNum, short Button, short Shift) { if (AreaType == areaSftBoxColumn) { if (m_sortedColumn != ColNum || m_sortDirection != sortSftBoxAscending) PerformSort(ColNum, sortSftBoxAscending); else PerformSort(ColNum, sortSftBoxDescending); } else if (AreaType == areaSftBoxColumnRes) { ISftBoxPtr vCompanyList = m_CompanyList.GetControlUnknown(); vCompanyList->Column[ColNum]->MakeOptimal(0); vCompanyList->Items->RecalcHorizontalExtent(0); // Adjust horizontal extent so we can scroll to the right edge of the header CRect rect; m_CompanyList.GetClientRect(&rect); vCompanyList->Items->HorizontalExtent = vCompanyList->Items->HorizontalExtent + rect.Width(); } } BEGIN_EVENTSINK_MAP(CDataInputDlg, CDialog) //{{AFX_EVENTSINK_MAP(CDataInputDlg) ON_EVENT(CDataInputDlg, IDC_COMPANYLIST, 8 /* ItemClick */, OnItemClickCompanylist, VTS_I4 VTS_I4 VTS_I4 VTS_I2 VTS_I2 VTS_I2) ON_EVENT(CDataInputDlg, IDC_COMPANYLIST, 9 /* ItemDblClk */, OnItemDblClkCompanylist, VTS_I4 VTS_I4 VTS_I4 VTS_I2 VTS_I2 VTS_I2) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP()