Пример из МСДН| Код | #define BUFFER MAX_PATH #define NAMELENGTH 15 #define POSITIONLENGTH 20 #define TEAMSIZE 15 typedef struct { TCHAR tchName[NAMELENGTH]; TCHAR tchPosition[POSITIONLENGTH]; int nGamesPlayed; int nInningsPlayed; double xBattingAverage; TCHAR tchFoodName[NAMELENGTH]; } Player; Player Roster[] = { {"Pete", "shortstop", 26, 90, .608, "Rutabaga"}, {"Suzanna", "catcher", 16, 53, .286, "Toast"}, {"Jack", "pitcher", 27, 110, .542, "Animal Crackers"},
{"Karen", "second base", 26, 140, .238, "Pez"}, {"Dave", "first base", 28, 138, .508, "Suds"}, {"Wendy", "third base", 25, 154, .493, "Ham"}, {"Matt", "shortstop", 24, 112, .579, "Oats"}, {"Jenny", "right field", 22, 101, .509, "Mashed Potatoes"}, {"Seth", "left-center field", 20, 76, .407, "Otter Pop"}, {"Kathie", "left field", 26, 127, .353, "Baba Ganouj"}, {"Colin", "pitcher", 26, 96, .456, "Lefse"},
{"Penny", "right field", 24, 112, .393, "Zotz"}, {"Art", "left-center field", 17, 56, .375, "Cannelloni"}, {"Cindy", "second base", 13, 58, .207, "Tequila"}, {"David", "center field", 18, 101, .612, "Bok Choy"} }; /* * FUNCTION: DlgTeamProc(HWND, unsigned, UINT, LONG) * * PURPOSE: Dialog box for "BFG Softball Statistics" */ BOOL APIENTRY DlgTeamProc( HWND hDlg, /* window handle of dialog box */
UINT message, /* type of message */ UINT wParam, /* message-specific information */ LONG lParam) /* message-specific information */ { TCHAR tchBuffer[BUFFER]; int nItem; int i; HWND hwndList; switch (message) { case WM_INITDIALOG: { hwndList = GetDlgItem(hDlg, IDL_SOFTBALL); /* Initialize the list box (fill it with player names). */
for (i = 0; i < TEAMSIZE; i++) { SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM) Roster[i].tchName); SendMessage(hwndList, LB_SETITEMDATA, i, (LPARAM) i); } SetFocus(hwndList); return FALSE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDL_SOFTBALL: switch (HIWORD(wParam)) {
case LBN_SELCHANGE: /* Show the selected player's statistics. */ hwndList = GetDlgItem(hDlg, IDL_SOFTBALL); nItem = SendMessage(hwndList, LB_GETCURSEL, 0, 0); i = SendMessage(hwndList, LB_GETITEMDATA, nItem, 0); SetDlgItemText(hDlg, IDS_POS,
Roster[i].tchPosition); SetDlgItemText(hDlg, IDS_GAME, _itoa(Roster[i].nGamesPlayed, tchBuffer, 10)); SetDlgItemText(hDlg, IDS_INN, _itoa(Roster[i].nInningsPlayed, tchBuffer, 10)); SetDlgItemText(hDlg, IDS_BA, _gcvt(Roster[i].xBattingAverage,
3, tchBuffer)); SetDlgItemText(hDlg, IDS_FOOD, Roster[i].tchFoodName); return TRUE; } break; case IDOK: case IDCANCEL: /* Destroy the dialog box. */ EndDialog(hDlg, TRUE); return TRUE; default:
return FALSE; } default: return FALSE; } }
|
|