Мне нужно передавать информацию(1) (что я выбрал в комбобоксе в свою функцию) а потом результат функции записываю в Edit (2). Но почемуто не записывается в Edit(( Код :
hEndVertexStatic = CreateWindowW(L"Static", L"End Vertex:",
WS_CHILD | WS_VISIBLE,
695, 150, 80, 20,
hWnd, (HMENU)ID_END_VERTEX_STATIC,
hInst, NULL);
hEndVertexCombo = CreateWindowW(L"Combobox", NULL,
WS_CHILD | WS_VISIBLE | CBS_DROPDOWN,
770, 150, 120, 110, hWnd, NULL,
hInst, NULL);
................................
if (HIWORD(wParam) == BN_CLICKED)
{
SendMessage(hStartVertexCombo, CBS_DROPDOWNLIST, (WPARAM)TRUE, 0);
return;
}
if (HIWORD(wParam) == BN_CLICKED)
{
SendMessage(hEndVertexCombo, CBS_DROPDOWNLIST, (WPARAM)TRUE, 0);
return;
}
if (LOWORD(wParam) == ID_FIND_PATH_BUTTON)
{
/* тут я вызываю свою функцию*/
FindPath(hWnd);
return;
}
if (HIWORD(wParam) == ID_FILE_PATH_EDIT)
{
/* тут должен результат вывести моей функции FindPath*/
SendMessage(hFoundPathEdit, CB_SHOWDROPDOWN, (WPARAM)TRUE, 0);
return;
}
.......................
for (const Vector& vertex : vertexBuffer)
{
..........................................................................
SendMessage(hStartVertexCombo, CB_ADDSTRING, 0, (LPARAM)vertexStr.c_str());
SendMessage(hEndVertexCombo, CB_ADDSTRING, 0, (LPARAM)vertexStr.c_str());
}
...................
void FindPath(HWND hWnd)
{
int iStartVertex = (int)SendMessage(hStartVertexCombo, CB_GETCURSEL, 0, 0);
int iEndVertex = (int)SendMessage(hEndVertexCombo, CB_GETCURSEL, 0, 0);
auto findPath = findShortestPath(graph, iStartVertex, iEndVertex);
Path vector = std::move(findPath.first);
for (VertexIndex index = 0; index < vector.size(); ++index)
{
.............................................
SendMessage(hFoundPathEdit, WM_SETTEXT, 0, (LPARAM)vertexStr.c_str());
//SetWindowText(hFoundPathEdit, vertexStr.c_str());
}
}
UPD:
Вы отправляете собщение WM_SETTEXT элементу EDITBOX в каждой итерации цикла. Но это сообщение устанавливает в EDITBOX новую строку (а не дописывает ее к уже существующему тексту). Поэтому все выводы в окно подобным образом до последнего прохода по телу цикла не имеют смысла - в окошке все равно будет только последняя строка. Если Вы хотите дописывать новые строки в EDITBOX в каждом проходе цикла, используйте пару сообщений EM_SETSEL (переместить каретку в конец текста) и EM_REPLACESEL (заменить пустое выделение новым текстом т.е. добавить новую строку в конец существующего текста).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть куча классовЯ в цикле хочу создать объект каждого класса и вызвать у него определенный метод
Скорее всего вопрос поставлен некорректно, но суть таковаХочу написать небольшое приложение
В моей программе (лабораторная работа на тему наследования по Павловской) возникает ряд ошибок указывающих на то, что я сделал синтаксическую...
Устанавливал VS 2015 communityПотом зашел в комплекты выбрал комплект MVSC 32 компилятора, для этого комплекта выбрал 1 из нескольких MVSC компиляторов,...