Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 228
от 29.10.2005, 14:45

Администратор:Калашников О.А.
В рассылке:Подписчиков: 225, Экспертов: 30
В номере:Вопросов: 3, Ответов: 6


Вопрос № 28173: Работаю в Borland C++ 5.02. Попытался описать API функции но Borland C++ 5.02 нашёл ошибки в файлах <имяфайлаAPI.h>(Не хватает скобок и ещё всякие). Не могли бы вы на простом примере (например функция ShellExecute запускает Calc.exe) объяснить ...
Вопрос № 28174: Здравствуйте Прошу извинений у тех, кого не оценил за прошлый вопрос. Заглючила почта. Вопрос таков: Почему в нижеуказанной программе в функции scanf() в строку,управляющую форматом вставлен символ ' '. Хочу сразу заметить, что без н...
Вопрос № 28175: Как из textBox в Microsoft Visual Studio .NET 2003 взять значение? Спасибо!...

Вопрос № 28.173
Работаю в Borland C++ 5.02. Попытался описать API функции но Borland C++ 5.02 нашёл ошибки в файлах <имяфайлаAPI.h>(Не хватает скобок и ещё всякие). Не могли бы вы на простом примере (например функция ShellExecute запускает Calc.exe) объяснить как правильно описывать API а то я столько примеров перепробовал а там ошибки. Заранее спасибо.
Отправлен: 23.10.2005, 14:47
Вопрос задал: Чурсанов Евгений Ильич (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Чурсанов Евгений Ильич!
Нужно перед
#include <shellapi.h>
включить (И ЭТО БУДЕТ ЧАСТО!! Не безразлично, что сначала, а что потом!!!!)
#include <windows.h>
Впрочем, см. в примере
(это нужно?)

Приложение:

---------
Прорвемся! (Быть может :(( )

Ответ отправил: Boriss (статус: Профессор)
Отправлен: 25.10.2005, 17:11
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое. Я вообще было уже начал думать что письмо мое не дошло т.к. никто не отвечал.


Вопрос № 28.174
Здравствуйте
Прошу извинений у тех, кого не оценил за прошлый вопрос. Заглючила почта.
Вопрос таков:
Почему в нижеуказанной программе в функции scanf() в строку,управляющую форматом вставлен символ ' '.
Хочу сразу заметить, что без него программа работает неправильно.
Отладчиком пользоваться пока не умею.
Пробовал printf() - ом вывести значение "item" до и после scanf() (без ' ').
Оно изменяется.
Значит scanf() что-то получает в качестве параметра.
Но почему не ждет ввода от пользователя ??????????
Заранее спасибо за ответы

Приложение:

Отправлен: 23.10.2005, 15:41
Вопрос задал: Slava_ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bob Johnson
Здравствуйте, Slava_!
Когда программа запрашивает "введите цифру", пользователь вводит цифру и нажимает ввод. После этого scanf'ом из stdin вытаскивается только цифра, а остается. Поэтому затем, когда программа запрашивает ввод символа, ей надо вначале извлечь , а уж затем сам символ, для этого добавлен в строку формата. Если же ты уберешь из строки формата, то первый символ, находящийся в stdin будет передан в программу (а это и будет ), поэтому программа начинает работать неверно.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 23.10.2005, 18:07
Оценка за ответ: 5
Комментарий оценки:
спасибо


Вопрос № 28.175
Как из textBox в Microsoft Visual Studio .NET 2003 взять значение?
Спасибо!
Отправлен: 23.10.2005, 15:44
Вопрос задал: Liger Dennis (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, Liger Dennis!
Очень просто.

Способ 1.
Идем в редактор ресурсов. Открываем форму. Щелкаем правой клавишей на TextBox и делаем Add Variable. В появившемся окне выбираем как мы хотим связать текст бокс - класс CEdit или переменная типа CString (я пользуюсь первым вариантом). Если CEdit, тогда m_myedit.GetWindowText(&mystring). Во втором варианте с CString все и так ясно.

Способ 2.
Нужно помнить, что textbox - это окно. А значит следующий код будет работать так, как надо:
CWnd *pWnd = GetDlgItem(IDC_TEXT_BOX); //вместо IDC_TEXT_BOX идентификатор ресурса твоего text box'a
pWnd->GetWindowText(&mystring);

Очевидно, второй способ более замороченый и пожходит когда к данному эдиту мало обращений или нету желания применить первый способ и хочется пописать кода.

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 23.10.2005, 15:54

Отвечает: Bob Johnson
Здравствуйте, Liger Dennis!
GetDlgItemText










Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 23.10.2005, 17:58

Отвечает: VampSergey
Здравствуйте, Liger Dennis!
Cпособ следующий: открыть MSDN->index->textbox class.
Public Properties::Text - Gets or sets the text content of the TextBox control.
Перевожу:
свойство текст - Получает или устанавливает текстовое содержание TextBox контрола.
Надеюсь поможет :)
Ответ отправил: VampSergey (статус: 1-ый класс)
Отправлен: 23.10.2005, 23:29

Отвечает: estiGi
Здравствуйте, Liger Dennis!
Библиотека какая? Компонент чей? Почему спрашиваю - в Visual Studio такой компонент называется EDIT

Если на MFC:

CEdit * edit = (CEdit *)GetDlgItem (IDC_EDIT1);
CString str;
edit->GetWindowText (str);

Если на API, и ты точно знаешь, что 256 символов тебе хватит:

HWND hEdit = ::GetDlgItem (m_hDlg, IDC_EDIT1);
char str [256];
int count = ::SendMessage (hEdit, WM_GETTEXT, 256, (LPARAM)str); // этой функцией можно получить текст, даже если контрол чужого окна
str [count] = '
Если на API, но ты не знаешь размер текста в контроле:

HWND hEdit = ::GetDlgItem (m_hDlg, IDC_EDIT1);
int count = ::GetWindowTextLength (hEdit);
char * str = new char [count + 1];
::GetWindowText (hEdit, str, count + 1); // можно и этой функцией воспользоваться, если контрол твой
str [count] = '// пользуем строку с текстом
delete [] str;

где IDC_EDIT1 - идентификатор контрола, а m_hDlg - дескриптор диалога-родителя
Вообще, эти функции предназначены для получения текста не только из EDIT'а. Можно брать текст почти из любого контрола, включая заголовок диалога, только дескрипторы меняй
Ответ отправил: estiGi (статус: 3-ий класс)
Отправлен: 24.10.2005, 00:48


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное