c ++ MFC, преобразующий строку в элементе управления редактирования в шестнадцатеричное

Я могу отлично преобразовать строки в шестнадцатеричные, если я определю их в источнике, например:

int input = 15;
CString output;
output.Format(L"%x", input);
m_oput.SetWindowText(output);

Результат — ‘f’, но как получится, если я сделаю это:

TCHAR buffer[500];
int input = GetDlgItemText(TOCON, buffer, 50);
CString output;
output.Format(L"%x", input);
m_oput.SetWindowText(output);

Выход «2»? Я пробовал несколько других способов получения текста из элемента управления редактированием, но каждый из них дал неправильные результаты. Что-то не так с тем, как я получаю текст от элемента управления в целом, или что я установил для maxcount?

0

Решение

GetDlgItemText копирует текст из элемента управления редактирования в буфер и возвращает количество символов, считанных из диалогового элемента управления, не текст интерпретируется как число. Путь состоит в том, чтобы сначала преобразовать строку в buffer в целое число, а затем поставьте это output.Format, Например, вы можете сделать это с помощью функции atoi, Ваш модифицированный код будет выглядеть так:

TCHAR buffer[500];
GetDlgItemText(TOCON, buffer, 50);
int input = atoi(buffer);
CString output;
output.Format(L"%x", input);
m_oput.SetWindowText(output);
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector