Консультация № 71984
21.01.2007, 22:25
0.00 руб.
0 4 4
Здравствуйте господа эксперты!
Помогите разобраться в следующем вопросе!
Я, посылаю lisbox-у сообщение SendMessage(hList,LB_GETCURSEL,0,0), в результате отправки этого сообщения, функция SendMessage возвращает либо целочисленный идентификатор выделенного элемента, либо LB_ERR, если нет выделенных элементов. Вопрос вот в чем, как преобразовать это целочисленное значение в “строку”, например для того чтобы отобразить в MessageBox-е.
Заранее благодарю, Павел Насыров.

Обсуждение

Неизвестный
22.01.2007, 00:01
общий
это ответ
Здравствуйте, Pashokq!

стандартно такое делается с помощью фунции sprintf
long i = 3;
char str[100];
sprintf(str, "%ld", i);
это пример "преобразования" переменной i в строку str в десятичном формате
в зависимости от того что за среду вы используете может сущестровать например
IntToStr
Неизвестный
22.01.2007, 01:36
общий
это ответ
Здравствуйте, Pashokq!

Могу предложить использовать просто if и в случае возврата из SendMessage - LB_ERR делать что угодно: см. приложение

Вместо MessageBox можете использовать любые возможные выражения и операции.
Желаю удачи ;-)

Приложение:
LRESULT rez;rez = SendMessage(hList,LB_GETCURSEL,0,0);if(LB_ERR != rez){ ..... //Код обработки в случае возврата индекса выбранного элемента}else{ CString str; //При использовании MFC str.Fornat("Error - %d", rez); MessageBox(NULL, "Функция SendMessage возвратила LB_ERR", str, MB_OK);}
Неизвестный
22.01.2007, 11:48
общий
это ответ
Здравствуйте, Pashokq!

попробуй преобразование типов см. приложение

Приложение:
int i=SendMessage(hList,LB_GETCURSEL,0,0);MessageBox(hWnd,(LPSTR)i,0,0);
Неизвестный
22.01.2007, 12:41
общий
это ответ
Здравствуйте, Pashokq!
---------------------------------------
Используй, например функцию sprintf(.....).
Удачи!
---------------------------------------
Форма ответа