Вопрос № 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 а то я столько примеров перепробовал а там ошибки. Заранее спасибо.
Отвечает: 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 взять значение?
Спасибо!
Отвечает: 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
Если на 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