Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите!!!

3.1K
15 октября 2005 года
geza
85 / / 02.02.2005
Как поместить значение int в edit.
Например:
int A=100;
SetWindowText(hEdit, (LPTSTR)A);
Так компилируется, но в программе ошибка вылезеет.
Что делать помогите:(
Страницы:
243
15 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by geza
Как поместить значение int в edit.
Например:
int A=100;
SetWindowText(hEdit, (LPTSTR)A);
Так компилируется, но в программе ошибка вылезеет.
Что делать помогите:(


itoa(A,str_buf,10);
Где str_buf - строковый буфер для твоего числа, например char str_buf[5], а 10 - основание системы счисления.

3.1K
16 октября 2005 года
geza
85 / / 02.02.2005
Спасибо, ты помог, не знаю что бы я делал.:) :}
3.1K
16 октября 2005 года
geza
85 / / 02.02.2005
А как поместить значение типа double или float:???:
247
16 октября 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by geza
А как поместить значение типа double или float:???:


fcvt,ecvt,gcvt
И вообще, почему бы тебе не RTFM?

243
16 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by wanja
И вообще, почему бы тебе не RTFM?


Это мысль ;)

3.1K
16 октября 2005 года
geza
85 / / 02.02.2005
Цитата:
Originally posted by wanja
fcvt,ecvt,gcvt
И вообще, почему бы тебе не RTFM?


Что еще за RTFM???:???:

243
16 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by geza
Что еще за RTFM???:???:


Read The Fucking Manual :)

406
17 октября 2005 года
vitaly2003s
481 / / 27.07.2004
Попробуй лучше MSDN. а если не знаеш что такое MSDN то google...
3.1K
17 октября 2005 года
geza
85 / / 02.02.2005
Цитата:
Originally posted by vitaly2003s
Попробуй лучше MSDN. а если не знаеш что такое MSDN то google...


MSDN я знаю что такое, только взять где не знаю.
И вообще я сейчас мало что знаю, я не новичек в
программировании, но новичек в WinApi

3.1K
18 октября 2005 года
geza
85 / / 02.02.2005
Кто знает, как свой шрифт загрузить, например если он лежит в дериктории моей проги.:P
299
18 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by geza
MSDN я знаю что такое, только взять где не знаю.
И вообще я сейчас мало что знаю, я не новичек в
программировании, но новичек в WinApi


msdn.microsoft.com

3.1K
18 октября 2005 года
geza
85 / / 02.02.2005
Цитата:
Originally posted by 3D Bob
msdn.microsoft.com


Это фигня, там попробуй найти что-нибуть :devil:

299
18 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by geza
Это фигня, там попробуй найти что-нибуть :devil:


Я там всегда нахожу ТО что мне нужно, другого MSDN е существует, разве что на компакт дисках.

3.1K
18 октября 2005 года
geza
85 / / 02.02.2005
Повторю вопрос еще раз :}. Кто знает, как свой шрифт загрузить, например если он лежит в дериктории моей проги. Напишите Please!!! Или ссылку на статью подкинте. :)
299
18 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by geza
Повторю вопрос еще раз :}. Кто знает, как свой шрифт загрузить, например если он лежит в дериктории моей проги. Напишите Please!!! Или ссылку на статью подкинте. :)


30 секунд поиска.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_9r51.asp

406
18 октября 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by geza
Повторю вопрос еще раз :}. Кто знает, как свой шрифт загрузить, например если он лежит в дериктории моей проги. Напишите Please!!! Или ссылку на статью подкинте. :)


3DBob прав.
Думаю так:
AddFontResource("c:\path_to_font.fon");
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);



А затем через CreateFont указываеш имя своего шрифта. Оно должно быть уникальным и не совпадать с другими шрифтами в системе.

После использования:
RemoveFontResource(("c:\path_to_font.fon");
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);

Хотя сам я непробовал.

Вот полностью выдержка по этому поводу из MSDN:
An application can use a font to draw text only if that font is either resident on a specified device or installed in the system font table. The font table is an internal array that identifies all nondevice fonts that are available to an application. An application can retrieve the names of fonts currently installed on a device or stored in the internal font table by calling the EnumFontFamilies or ChooseFont functions.

To temporarily install a font, call AddFontResource or AddFontResourceEx. These functions load a font that is stored in a font-resource file. However, this is a temporary installation because after a reboot the font will not be present.

To install a font that will remain after the system is rebooted, use one of the following methods:

Go to the Control Panel, click the Fonts icon, and select Install New Fonts from the File menu. The font is available to an application even before the reboot. However, in a terminal server situation the font is available for the current session but is not available for other sessions until after a reboot.
Copy the font into the %windir%\fonts folder. Then, either go to the Control Panel and click the Fonts icon, or call AddFontResource or AddFontResourceEx. The font is available to an application even before the reboot. However, in a terminal server situation the font is available for the current session but is not available for other sessions until after a reboot. If you only copy the font into the %windir%\fonts folder, the font will be available only after the system is rebooted.
In the case of TrueType and OpenType fonts, an additional step is sometimes necessary before the font can be installed in the font table. Some font manufacturers ship only the TrueType or OpenType font-data files (identified by the .ttf extension). Before The system can load these fonts, it requires a corresponding header file (identified by the .fot extension). To create this header file, an application must call the CreateScalableFontResource function and pass the name of the font-data file as the third parameter. When this header file is created, an application can install the font by calling the AddFontResource or AddFontResourceEx function and passing the name of the new header file.

When an application finishes using an installed font, it must remove that font by calling the RemoveFontResource function.

Whenever an application calls the functions that add and delete font resources, it should also call the SendMessage function and send a WM_FONTCHANGE message to all top-level windows in the system. This message notifies other applications that the internal font table has been altered by an application that added or removed a font.

3.1K
18 октября 2005 года
geza
85 / / 02.02.2005
Что то я ковырялся в этом MSDN и совсем ничего найти не мог
Спасибо ребята, выручили :) ;) :)
3.1K
21 октября 2005 года
geza
85 / / 02.02.2005
Как узнать последний символ массиве char. Подскажите ребята!:}
406
21 октября 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by geza
Как узнать последний символ массиве char. Подскажите ребята!:}



int len = 50;
char * arstr=new char [len];

char last_char= arstr[len-1];

3
21 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by vitaly2003s
int len = 50;
char * arstr=new char [len];
char last_char= arstr[len-1];


Можно куда более универсально:

 
Код:
char last_char= array[ sizeof(array)/sizeof(array[0]) - 1 ];

Кстати, arstr - это не массив
3.1K
21 октября 2005 года
geza
85 / / 02.02.2005
Видимо вы меня не так поняли, обьясню на по лучше
Создал я массив char str[20];
Затем при помощи функции gcvt присвоил ему значение, длина которого мне не известна. Так вот как мне узнать какой символ последний и где он находится, например в str[15]
243
21 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by geza
Видимо вы меня не так поняли, обьясню на по лучше
Создал я массив char str[20];
Затем при помощи функции gcvt присвоил ему значение, длина которого мне не известна. Так вот как мне узнать какой символ последний и где он находится, например в str[15]


Я надеюсь, что перед тем, как помещать значение в массив, ты сделал memset(str,0,15)? Если нет, то делай.
Далее - есть функция strlen(), которая вернет тебе длинну строки. Как из длинны строки получить номер последнего символа, думаю пояснять не надо.
Green - что есть arstr? Почему-то мне всегда казалось, что это динамический массив. Ну, или еще можно сказать указатель типа char на область памяти выделенной из кучи, что как мне кажется дела не меняет. Поясни.

299
22 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by pacific_7
Я надеюсь, что перед тем, как помещать значение в массив, ты сделал memset(str,0,15)? Если нет, то делай.
Далее - есть функция strlen(), которая вернет тебе длинну строки. Как из длинны строки получить номер последнего символа, думаю пояснять не надо.
Green - что есть arstr? Почему-то мне всегда казалось, что это динамический массив. Ну, или еще можно сказать указатель типа char на область памяти выделенной из кучи, что как мне кажется дела не меняет. Поясни.


Я думаю из-за того что sizeof(arstr) возращает не размер масива, поэтому это не массив)

3.1K
22 октября 2005 года
geza
85 / / 02.02.2005
Цитата:
Originally posted by pacific_7
Я надеюсь, что перед тем, как помещать значение в массив, ты сделал memset(str,0,15)? Если нет, то делай.
Далее - есть функция strlen(), которая вернет тебе длинну строки. Как из длинны строки получить номер последнего символа, думаю пояснять не надо.
Green - что есть arstr? Почему-то мне всегда казалось, что это динамический массив. Ну, или еще можно сказать указатель типа char на область памяти выделенной из кучи, что как мне кажется дела не меняет. Поясни.


Для чего memset(str,0,15):-?

243
22 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by geza
Для чего memset(str,0,15):-?


Ну прояви же самостоятельность. При определении любой переменной, в частности массива типа char, в ячейках памяти выделенных под эту переменную находится случайное значение. Т.е. в твоем примере в str уже что-то записано, даже до того, как ты сам туда что-нибудь поместишь. Надо от этого избавиться, т.е. очистить память переменной str. Для этого и спользуется memset. Как он работает - должен сам разобраться.

406
22 октября 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by Green
Можно куда более универсально:
 
Код:
char last_char= array[ sizeof(array)/sizeof(array[0]) - 1 ];

Кстати, arstr - это не массив



Ну это понятно что для твоего кода мой массив не подходит. так как здесь нужно по край ней мере обявить так:
char array[20];
char last_char= array[ sizeof(array)/sizeof(array[0]) - 1 ];

поэтому я такой код и не написал.
Что по твоему является arstr как не динамический массив ? Можно конечно сказать что это указатель на область памяти,но если следовать идеологии си там это называлось массивом.

geza:
Для чего memset(str,0,15)

для того чтобы обнулить участок памяти заданной длины.

299
22 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by vitaly2003s

Для чего memset(str,0,15)

для того чтобы обнулить участок памяти заданной длины.


или из API
ZeroMemory(&str,sizeof(str));

3
22 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by vitaly2003s

Что по твоему является arstr как не динамический массив ? Можно конечно сказать что это указатель на область памяти,но если следовать идеологии си там это называлось массивом.



Цитата:
Originally posted by pacific_7

Green - что есть arstr? Почему-то мне всегда казалось, что это динамический массив. Ну, или еще можно сказать указатель типа char на область памяти выделенной из кучи, что как мне кажется дела не меняет. Поясни.



А что есть char* p; ?
Динамический массив? Какого размера?
Указатель на область памяти? Опять же какого размера?

А если записать так:
char ch;
char* p = &ch;

Это будет динамическим массивом?

Ответ: char* p - это указатель на char, как и arstr - всего лишь указатель на char, вот только указывает он на первый элемент выделенного блока памяти. Но от этого массивом или указателем на длок памяти не становится, т.к. никакой информации о них не содержит.

243
22 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Green
Ответ: char* p - это указатель на char, как и arstr - всего лишь указатель на char, вот только указывает он на первый элемент выделенного блока памяти.


Понятно, согласен.

Цитата:
Originally posted by Green
Но от этого массивом или указателем на длок памяти не становится, т.к. никакой информации о них не содержит.


Ладно, тогда как называть группу переменных, доступ к которым осуществляется через arstr? Я думаю ты понимаешь, что в примере под словом "массив" подразумевалась именно эта группа, а не сам указатель.
В литературе обычно называют динамическим массивом.
Или мы друг друга не понимаем? :)

3
22 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by pacific_7

Ладно, тогда как называть группу переменных, доступ к которым осуществляется через arstr?


Если имеется в виду та группа из примера, полученная через new char[10], то это массив ;)

Цитата:
Originally posted by pacific_7

Я думаю ты понимаешь, что в примере под словом "массив" подразумевалась именно эта группа, а не сам указатель.


Понимаю. Я прицепился к указателю. :)

Ладно, автору топика все равно нужнен не последний символ массива, а последний символ C-строки не считая завершающего нуля.
И ему поможет strlen()

243
22 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Green
И ему поможет strlen()


Это типа что бы я не обижался? :)

3.1K
24 октября 2005 года
geza
85 / / 02.02.2005
Цитата:
Originally posted by pacific_7
Это типа что бы я не обижался? :)


Спасибо, strlen() помог, но memset использовать не обязательно, все и без него работает.:)

299
24 октября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by geza
Спасибо, strlen() помог, но memset использовать не обязательно, все и без него работает.:)

Зато полезно.

3.1K
24 октября 2005 года
geza
85 / / 02.02.2005
Как вставить иконку в свою программу :???:
3.1K
24 октября 2005 года
geza
85 / / 02.02.2005
Не обращайте внимание за ссылку которую я там поставил, это я нечайно.:}
3.1K
24 октября 2005 года
geza
85 / / 02.02.2005
Ребята, отбой уже не надо:}
243
24 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by geza
Спасибо, strlen() помог, но memset использовать не обязательно, все и без него работает.:)


Делай обязательно всегда и везде, иначе потом будешь долго ломать голову, почему вроде бы правильный код выдает неверный результат.

3
25 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by pacific_7
Делай обязательно всегда и везде, иначе потом будешь долго ломать голову, почему вроде бы правильный код выдает неверный результат.



Задача
Буратине дали три яблока. Два из них он съел.
Сколько яблок осталось у Буратино?

Ответ
Неизвестно, т.к. мы не знаем сколько яблок у него было.

Мораль
Иннициализируйте переменные!

Но иннициализация не означает обнуление, точно так же иннициализация массива или области памяти не означает установку кажого элемента или байта в ноль или любую др. одинаковую величину.
Иннициализацией строки может быть занесение в неё конкретного набора символов. Поэтому нет смысла вызывать memset, если за ним сразу идет strcpy.

3.1K
30 октября 2005 года
geza
85 / / 02.02.2005
Наконец я закончил свою первую программу написанную на чистом API с помощью Microsoft Visual C++ 6. Спасибо всем кто помогал мне на этом форуме.

Вот исходник
и сам калькулятор
4.8K
30 октября 2005 года
Вася Триллер
149 / / 30.10.2005
a^b это возведение в степень?
Тогда я не знал, что 2в степени 32=1024...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог