Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Значение Edit в переменную 
:(
    Опции темы
ZIFIR
Дата 13.4.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Если можно поподробнее объясните как значение Edit занести в переменную по нажатии на кнопку?
Какая процедура используется для одинарного нажатия на кнопку?
Надо ли создавать и описывать класс от CEdit для этого?

PM MAIL   Вверх
zkv
Дата 13.4.2007, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(ZIFIR @  13.4.2007,  08:04 Найти цитируемый пост)
Какая процедура используется для одинарного нажатия на кнопку?

в редакторе ресурсов сделайте двойной щелчок по кнопке, тем самым создадите и попадете в обработчик smile
Цитата(ZIFIR @  13.4.2007,  08:04 Найти цитируемый пост)
Надо ли создавать и описывать класс от CEdit для этого?

нет
Цитата(ZIFIR @  13.4.2007,  08:04 Найти цитируемый пост)
Если можно поподробнее объясните как значение Edit занести в переменную по нажатии на кнопку?

добавте управляющую переменную (control variable) в редакторе ресурсов (пусть будет m_MyEdit), потом в обработчике пишем:
Код

CString str;//тут будет текст
m_MyEdit.GetWindowText( str );

PM MAIL   Вверх
ZIFIR
Дата 13.4.2007, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



А если я делаю в пустом проекте то как?
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 08:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Объявляешь переменную типа CString в хедере класса диалога (пусть m_strEdit).
Перекрываешь для класса диалога функцию DoDataExchange. 
Т.е. в хедере:
Код
virtual void DoDataExchange(CDataExchange* pDX);

В cpp:
Код
void CYourDlg::DoDataExchange(CDataExchange* pDX)
{
     CDialog::DoDataExchange(pDX);
     DDX_Text(pDX, IDC_EDIT, m_strEdit);
}

Далее чтобы переслать строку из едита в строку вызываешь UpdateData(true), а чтобы из строки в едит - UpdateData(false);


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 13.4.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



А через GetWindowText() как сделать?
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



IDC_EDIT - идентификатор твоего едита
Код

CString strEdit;
GetDlgItemText(IDC_EDIT, strEdit);

Если уж сильно хочется через GetWindowText, то
Код

CString strEdit;
GetDlgItem(IDC_EDIT)->GetWindowText(strEdit);



--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 13.4.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Делаю так:

void CMyButton::OnLButtonDblClk(UINT, CPoint)
{
    CString str;    
    GetDlgItemText(IDC_MYEDIT, str);
}

Проверяю в отладчике str= ("")

Вставляю
MoveWindow(CRect(120,100,220,150),TRUE);
получается двигать кнопку

Что не так
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Код

CString str;
GetDlgItemText(IDC_MYEDIT, str);
AfxMessageBox(str);

Что показывает?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 13.4.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Пустое окно
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



2 варианта:
1. У тебя пустой едит
2. У тебя неверный идентификатор. Т.е. IDC_MYEDIT существует, но он не связан с едитом
Других причин я не вижу. Проверь все внимательней.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 13.4.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Наверно не связан, а как связать?
И пож напишите метод одинарного клика на Button
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



В редакторе ресурсов выделяешь свой едит и в окне Properties в поле ID вводишь свой идентификатор. Делаешь двойной клик по кнопке и попадаешь в обработчик "одинарного клика на Button".


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 13.4.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Я делал через пустой проект. Как программно это сделать?
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 15:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Я не хочу объяснять как редактировать в ручную файл ресурсов. Или делай через мастера или жди пока садо-мазохист, который не любит пользоваться удобствами среды, а любит геморрой и делает все вручную, объяснит тебе как это делается.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
a11en
Дата 13.4.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 4.11.2006
Где: Ставрополь

Репутация: нет
Всего: нет



ZIFIR, интересно, а зачем такое может понадобится???
PM MAIL ICQ   Вверх
Earnest
Дата 13.4.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(ZIFIR @  13.4.2007,  15:47 Найти цитируемый пост)
Наверно не связан, а как связать?

Твой edit должен иметь этот идентификатор, только и всего. Проверь.

Цитата(Greeen @  13.4.2007,  16:06 Найти цитируемый пост)
 Или делай через мастера или жди пока садо-мазохист, который не любит пользоваться удобствами среды, а любит геморрой и делает все вручную, объяснит тебе как это делается. 

Какие это удобства... Код такой уродский генерируется, и комментарии визарда эти дебильные...
Кошмар, до чего визарды программеров доводят... А если в визарде не окажется нужной фичи, что делать-то будешь... smile  smile  smile 

Руками клик на кнопке обрабатывается просто:

Допустим, button имеет ID = IDC_MYBUTTON
1) добавляем в класс диалога обработчик:
afx_msg void OnMyButton();

2) добавляем обработчик в карту сообщений диалога:
ON_COMMAND (IDC_MYBUTTON, OnMyButton)

3) реализуем обработчик (саму функцию напиши)



--------------------
...
PM   Вверх
a11en
Дата 14.4.2007, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 4.11.2006
Где: Ставрополь

Репутация: нет
Всего: нет



Earnest, на сколько я понял, автор топика, хочет и рисовать програмно... Либо я ничего не понял...
PM MAIL ICQ   Вверх
Greeen
Дата 14.4.2007, 10:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Earnest, я тоже понял так, что ZIFIR не хочет пользоваться редактором ресурсов вообще. Ну что ж, тогда я соглашусь с тем, что визарды довели меня до того что мне приятней визуально располагать контролы, а не создавать rc'шник с нуля. Или по твоему удобней создать пустой проект и добавлять туда все самому.

Это сообщение отредактировал(а) Greeen - 14.4.2007, 10:33


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Earnest
Дата 14.4.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(ZIFIR @  13.4.2007,  15:47 Найти цитируемый пост)
И пож напишите метод одинарного клика на Button 

Кто его знает, конечно, но вроде отсюда следует, что кнопка уже есть.

Редактором ресурсов я пользуюсь, конечно. Только иногда его удобнее руками править: строки, например, или проводить какие-либо изменения идентификаторов. В общем, я за отсутствие фанатизма. smile  smile  smile 


--------------------
...
PM   Вверх
Greeen
Дата 14.4.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Цитата(Earnest @  14.4.2007,  14:54 Найти цитируемый пост)
иногда его удобнее руками править

Иногда конечно, вопросов нет. Но чтобы за визарда делать работу по созданию проекта это по меньшей мере странно (ИМХО). Хотя на любителя.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ZIFIR
Дата 15.4.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



О как тема то развернулась!
Я просто только начал изучение визуала, 
и поэтому разбираюсь как это все работает. Вот и все.
PM MAIL   Вверх
ZIFIR
Дата 16.4.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Цитата

Допустим, button имеет ID = IDC_MYBUTTON
1) добавляем в класс диалога обработчик:
afx_msg void OnMyButton();

2) добавляем обработчик в карту сообщений диалога:
ON_COMMAND (IDC_MYBUTTON, OnMyButton)

3) реализуем обработчик (саму функцию напиши)


А как Edit связать с идентификатором? Что-то не получается
PM MAIL   Вверх
Greeen
Дата 16.4.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



ZIFIR, а как ты кнопочку создал?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
v2v
Дата 16.4.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Цитата(ZIFIR @ 16.4.2007,  14:46)
А как Edit связать с идентификатором? Что-то не получается

А как ты этот самый Эдит создаешь? Через ресурсы(в Solution Explorer файл с расширением rc)? (тогда в свойствах есть строчка ID)... С помощью функции Криэйт?(тогда .. там есть параметр какой то где и указывается ИД) ... детальнее - читай мздн.

Добавлено через 2 минуты и 4 секунды
Цитата(ZIFIR @ 13.4.2007,  14:54)
Я делал через пустой проект. Как программно это сделать?

Если ты только начал разбираться с визуалом.. то всё таки лучше для начала разберись с не пустым проектом по умолчанию...


--------------------
PM   Вверх
Greeen
Дата 16.4.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Вот это протормозил. Говорю "как кнопочку создал", имею в виду "как едит создал".  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Death_Master
Дата 19.6.2008, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.2.2008

Репутация: нет
Всего: нет



Спасибо, помогло с этими извратами( smile)  smile 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.