MFC - Visual Studio 2008 c++, быстрый поиск ака подсказка
Вобщем есть форма (Edit обычный, ондострочный), так вот как сделать так, чтобы Когда вводишь первую букву, из текстовика брались строчки, сравнивались, и если совпадает уже напечатанная часть, то ниже выводится типа список (по которому можно нажать, и введётся строка полностью, ну или нажать кнопку стрелки вниз, тогда из списка в вформу будут поступать строки из этого списка), этот список напоминает как подменю, открывающюеся по нажатию правой кнопки по файлу в эксплорере).
Можете рассказать как делается по подробней (иногда даже в учебнеках не всё понятно). А может (если сильно трудоёмко есть другой выход?). Меню создавать умею, а вот как его соотнести с вышеописанным не знаю.
Надеюсь на вашу помощь.
Взять за основу ComboBox. Он обладает практически всей функциональностью, описанной вами, и чуть настроить его под свои нужды.
А не подскажете ли как настроить?
Цитата: Resager
А не подскажете ли как настроить?
На вскидку: унаследовать от CComboBox и переопределить обработчик нажатия на клавиши. Если будет время, выложу примерчик.
А может кто ещё уделит чуточку времени и покажет начинающему програмеру как тут быть?
char cTxt[300];
cTxt[0] = 0;
SNDMSG(hWndCombo, WM_GETTEXT, sizeof(cTxt), (LPARAM)cTxt);
if(cTxt[0]){
long lIndex = SNDMSG(hWndCombo, CB_FINDSTRING, -1, (LPARAM)cTxt);
if(lIndex>-1){
int iSel = LOWORD(SNDMSG(hWndCombo, CB_GETEDITSEL, 0, 0));
cTxt[0] = 0;
SNDMSG(hWndCombo, CB_GETLBTEXT, lIndex, (LPARAM)cTxt);
SNDMSG(hWndCombo, WM_SETTEXT, 0, (LPARAM)cTxt);
SNDMSG(hWndCombo, CB_SETEDITSEL, 0, MAKELPARAM(iSel, strlen(cTxt)));
}
}