Форум программистов, компьютерный форум CyberForum.ru

Вывод значений в листбокс - C++ WinAPI

Войти
Регистрация
Восстановить пароль
 
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 473
05.01.2017, 18:55     Вывод значений в листбокс #1
Нужно вывести значения в листбокс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define RAZMER_TAR 7
struct Tarif
{
    TCHAR naim_region[20];
    double tarif_1;
    double tarif_2;
    double tarif_3;
    double tarif_4;
}str_tarif;
//--------------------------------------------------
char tarif_11[RAZMER_TAR],tarif_22[RAZMER_TAR], str_Lbox[300];
str_tarif.tarif_1 = 44,44;
str_tarif.tarif_2 = 55,55;
_gcvt(str_tarif.tarif_1, RAZMER_TAR, tarif_11);
_gcvt(str_tarif.tarif_2, RAZMER_TAR, tarif_22);
wsprintf(str_Lbox,("%10s %s %s"), str_tarif.naim_region, tarif_11, tarif_22);
SendDlgItemMessage(hDlg_tarif,ID_SPISOK_TARIF,LB_ADDSTRING,0,(LPARAM)str_Lbox);
При этом такой вывод: текст 0 55.55
если уберу строчку _gcvt(str_tarif.tarif_2, RAZMER_TAR, tarif_22); то тогда вывод такой: текст 44.44
Почему не выводит всю строчку? а вместо 44,44 появляется 0?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 18:55     Вывод значений в листбокс
Посмотрите здесь:

Сделать листбокс в главном окне программы средствами WinAPI C++ WinAPI
По нажатию на кнопку добавить текст в листбокс C++ WinAPI
Текст из файла .txt занести в листбокс, в WinAPI C++ WinAPI
Листбокс из 2 столбцов на WinAPI C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nd2
1274 / 1013 / 349
Регистрация: 29.01.2016
Сообщений: 3,135
05.01.2017, 19:47     Вывод значений в листбокс #2
Цитата Сообщение от eagl69 Посмотреть сообщение
44,44
Почему запятая, а не точка?
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 473
05.01.2017, 20:01  [ТС]     Вывод значений в листбокс #3
Наверное я опечатался, но вот почему выводит 0 когда преобразовывается 2 значения?

Добавлено через 8 минут
Вообще, мне надо вывести структуру в листбокс, может есть ещё способ?
Alex5
907 / 642 / 90
Регистрация: 12.04.2010
Сообщений: 1,632
05.01.2017, 21:11     Вывод значений в листбокс #4
Цитата Сообщение от eagl69 Посмотреть сообщение
При этом такой вывод: текст 0 55.55
eagl69, установим breakpoint в строке "wsprintf( ... ". Что показывает отладчик? Чему равны в этом случае переменные str_tarif.naim_region, tarif_11, tarif_22 ?
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 473
06.01.2017, 10:15  [ТС]     Вывод значений в листбокс #5
Цитата Сообщение от eagl69 Посмотреть сообщение
C++
1
2
3
_gcvt(str_tarif.tarif_1, RAZMER_TAR, tarif_11);
_gcvt(str_tarif.tarif_2, RAZMER_TAR, tarif_22);
wsprintf(str_Lbox,("%10s %s %s"), str_tarif.naim_region, tarif_11, tarif_22);
В этом случае tarif_11 показывает 0
а в этом:
Цитата Сообщение от eagl69 Посмотреть сообщение
C++
1
2
3
_gcvt(str_tarif.tarif_1, RAZMER_TAR, tarif_11);
//_gcvt(str_tarif.tarif_2, RAZMER_TAR, tarif_22);
wsprintf(str_Lbox,("%10s %s %s"), str_tarif.naim_region, tarif_11, tarif_22);
tarif_11 показывает 44.44
Alex5
907 / 642 / 90
Регистрация: 12.04.2010
Сообщений: 1,632
06.01.2017, 20:01     Вывод значений в листбокс #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
eagl69, можно, выполнив программу по шагам, посмотреть, когда tarif_11 становится равным "0".

В окне "память" видно, что _gcvt изменяет 9 байт. Массива из 7 элементов char[7] недостаточно для _gcvt(str_tarif.tarif_2, 7, tarif_22);
Миниатюры
Вывод значений в листбокс  
Yandex
Объявления
06.01.2017, 20:01     Вывод значений в листбокс
Ответ Создать тему
Опции темы

Текущее время: 12:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru