forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Вывод текста (http://forum.boolean.name/showthread.php?t=15533)

Mind 23.09.2011 17:35

Вывод текста
 
Помогите разобраться....
По книге Станислава Горнакова пробывал выводить текст так там у него одни ошибки. Он предназначен для старого DXSDK. Я так и немогу понять как создать текст в С++, с помошщью какой команды.
ЗЫ как вывести цифры на экран, прейдется преобразовывать типы (из int в char и т.д)?

FireOwl 23.09.2011 17:40

Ответ: Вывод текста
 
Имеется в виду это: http://adorning.ru/2010/01/10/c-urok-6-stroki/
Или что?

Mind 23.09.2011 17:54

Ответ: Вывод текста
 
Я имел ввиду вывод текста в 3D приложение

falcon 23.09.2011 22:49

Ответ: Вывод текста
 
Цитата:

По книге Станислава Горнакова
сожги книгу и автора, по возможности...

Mind 24.09.2011 11:53

Ответ: Вывод текста
 
Цитата:

Сообщение от falcon (Сообщение 203275)
сожги книгу и автора, по возможности...

:-D
Уже ей непользуюсь месяца полтора где-то. Сам кодю и решаю задачи.

Но все же как быть с текстом?

Mhyhr 24.09.2011 22:11

Ответ: Вывод текста
 
Неужели так сложно нагуглить самому что-то типа:
http://www.toymaker.info/Games/html/text.html

Цитата:

прейдется преобразовывать типы (из int в char и т.д)?
Да прЕЙдется.

Reizel 25.09.2011 12:33

Ответ: Вывод текста
 
Цитата:

Сообщение от Mind (Сообщение 203231)
прейдется преобразовывать типы (из int в char и т.д)?

Нет, преобразование тут не поможет. Читай itoa, ftoa и подобные

genroelgvozo 25.09.2011 13:53

Ответ: Вывод текста
 
можно еще char(n+48 ) в цикле

Mind 25.09.2011 14:39

Ответ: Вывод текста
 
Цитата:

Сообщение от Mhyhr (Сообщение 203345)
Неужели так сложно нагуглить самому что-то типа:
http://www.toymaker.info/Games/html/text.html

Такой метод я знаю. Я не пойму как в таком случае вывести число из переменной.Если с преобразованием то какой командой?stroka=reinterpret_cast<LPCWSTR>(perem)?


Цитата:

Сообщение от genroelgvozo
можно еще char(n+48 ) в цикле

нафига?:4to:

Цитата:

Сообщение от ПАВЕЛ
Нет, преобразование тут не поможет. Читай itoa, ftoa и подобные

Что это такое?

ЗЫ есть ли еще какя-нить команда для вывода текста в 3D приложение кроме Drawtext ?

impersonalis 25.09.2011 14:59

Ответ: Вывод текста
 
Цитата:

Сообщение от genroelgvozo (Сообщение 203380)
можно еще char(n+48 ) в цикле

это проканает при системе кодирования числа "1-байт-1-цифра"
т.е. 123 задаётся как
Код:

char n[3];
n[0]=1;
n[1]=2;
n[2]=3;

и выводится как
Код:

for(short i=0;i<sizeof(n);i++){
cout<<char(n[i]+48)<<endl;
}

48 - кодовая разница по ASCII между '0' и 0

Mind 25.09.2011 16:29

Ответ: Вывод текста
 
Цитата:

48 - кодовая разница по ASCII между '0' и 0
Понял спс.

genroelgvozo 28.09.2011 10:33

Ответ: Вывод текста
 
ну так можно получать разряды из числа а не хранить их в массиве
ну а вообще да лучше наверное itoa, хотя мне кто то говорил что там фишки не хорошие есть

impersonalis 28.09.2011 10:59

Ответ: Вывод текста
 
Цитата:

Сообщение от genroelgvozo (Сообщение 203646)
ну так можно получать разряды из числа а не хранить их в массиве

Что-то в голове рождается не очень красивый код, со скачками по адресам и кучей битовых операций, а в итоге:
Цитата:

Сообщение от genroelgvozo (Сообщение 203646)
ну а вообще да лучше наверное itoa, хотя мне кто то говорил что там фишки не хорошие есть

Ну, наверное, проблемы с переполнением переданного char буфера

Mind 21.12.2011 20:13

Ответ: Вывод текста
 
Вот краткая функция вывода текста:

Код:

void InitMyText(IDirect3DDevice9* dev,HFONT hFont)
{
        if (hFont == NULL)
        hFont = CreateFont(30,10,0,0,FW_NORMAL,0,0,0,1,0,0,0,DEFAULT_PITCH | FF_MODERN,L"Arial");
 
        if (pFont == NULL)
        D3DXCreateFontIndirect(dev,&hv,&pFont);
}
void DrawMyText(LPCWSTR str,int x,int y,int x1,int y1,D3DCOLOR MyColor)
{
        Rec.left = x;
        Rec.top = y;
        Rec.right = x1;
        Rec.bottom = y1;
       
        pFont -> DrawText(0,str,-1,&Rec,DT_WORDBREAK,MyColor);
}

Вопрос в том как только выводить цифры? Где-то читал что надо делать так:

Код:

void PrintInt(int a, int x, int y,D3DCOLOR MyColor)
{
    char textint[33];
    _itoa_s(a,textint,10);
    pFont -> DrawText(0,textint,-1,&Rec,DT_WORDBREAK,MyColor); // Ругается 
}

Ругается потому что не совпадает тип char с типом LPCWSTR.
Вот и не пойму что делать. Подскажите.

pozitiffcat 21.12.2011 21:35

Ответ: Вывод текста
 
а ты попробуй DrawTextA, а вообще переключи в свойствах проекта использовать unicode, на многобайтовую. Или wchar_t textint[33]
UPD:
wchar_t* textint = new wchar_t[33];


Часовой пояс GMT +4, время: 14:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot