Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кнопки, как Забандить кнопку? 
:(
    Опции темы
Sasha1
  Дата 5.5.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть Баттон1 
и есть Едит1.
на кнопки надпись 1 , как сделать так чтобы при нажатие на кнопку , он вносил в Поле Едит1   единицу.
а если нажать ещё раз то 11 .. 111  и т .д ( Как в Виндовском калькуляторе. )

и запоминал ето значение в какуето Даббле переменную ? smile  
PM MAIL   Вверх
Sasha1
Дата 5.5.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


Шустрый
*


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

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



Можно попробовать за эдитом закрепить стринговую переменную, и при каждом нажатии добавлять к строке единицу. А потом при необходимости преобразовать cтроку в число. Но это, по-моему, как-то по китайски. Зато просто. smile

Добавлено @ 02:26 
Вот еще вариант, вроде получше.
За эдитом закрепи числовую переменную, например, Double, как ты хотел и инициализируй нулем. Тогда при нажатии кнопки новое число будет получаться путем умножения старого  на 10 и прибавлением единицы. Примерно так:
0
1     = 0*10+1
11   = 1*10+1
111 = 11*10+1 
--------------------
Я не волшебник, я только учусь.
PM MAIL WWW ICQ   Вверх
Sasha1
Дата 6.5.2006, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а как ето бедт выгледить , в Коде ? ..  smile  
PM MAIL   Вверх
LPNcom
Дата 6.5.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если камасутру не использовать, то можно так
Кликаешь на своей кнопке два разА, и тебя пошлют в созданную функцию OnBnClickedButton1
Функция будет вызываться при нажфтиии на кнопку

Там пишешь
    CString Str;
    p_Edit.GetWindowText(Str);
    Str+="1";
    p_Edit.SetWindowText(Str);



p_Edit это твой Едит 
PM MAIL ICQ   Вверх
Sasha1
Дата 6.5.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а как сделать с позицианированием.  т.е 
есть два Едита ...  я хочу сначало так ввести число впервы и потом также во второй ? 

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


Новичок



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

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



Нипонял маненько что требуется
Запустил виндоусовский калькулятор - дак там одно поле. smile 

Заведи переменную для второго едита и фсе дела 
PM MAIL ICQ   Вверх
Sasha1
Дата 6.5.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня 2 едита , я тыкаю на кнопочки и набирается число токо в первом естественно , а как сделать что бы я  при тыкание на 1 поле он позицианировал и набирал по нажатию кнопочек только в нем , а когда я тыкаю во второе поле то он набирал только в нём ? ))) 
PM MAIL   Вверх
cozzzy
Дата 6.5.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Sasha1 @  6.5.2006,  15:05 Найти цитируемый пост)
позицианировал и набирал по нажатию кнопочек только в нем , а когда я тыкаю во второе поле то он набирал только в нём ? ))) 

Переведи на русский язык, плз. 

 
PM MAIL   Вверх
Nikol
Дата 7.5.2006, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(LPNcom @  6.5.2006,  14:18 Найти цитируемый пост)
Если камасутру не использовать,

Я и имела ввиду то, что ты написал, но с учетом того, что калькулятор должен еще и считать, а для этого нужны числа. Поэтому лучше второй вариант. По-моему такой код выглядит вполне компактно, а число получается сразу: 
Код

m_value = m_value*10+1;
UpdateData(FALSE);

А для кнопки с цифрой 2 будет тоже самое, только + 2 вместо + 1.

Цитата(Sasha1 @  6.5.2006,  16:05 Найти цитируемый пост)
у меня 2 едита , я тыкаю на кнопочки и набирается число токо в первом естественно , а как сделать что бы я  при тыкание на 1 поле он позицианировал и набирал по нажатию кнопочек только в нем , а когда я тыкаю во второе поле то он набирал только в нём ? )))  

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

 
--------------------
Я не волшебник, я только учусь.
PM MAIL WWW ICQ   Вверх
Sasha1
Дата 7.5.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну так как то интереснее..  Я там делаю по сторкам потом перевожу в ИНТ .. всё считаеться..

а как сделать.Так что бы при позицианировании на первом едите была такая строчка . 



p_Edit1.GetWindowText(str1);

а если на втором то p_Edit2.GetWindowText(str1);



типа ..

If(p_Edit1. Chenge )
{
p_Edit1.GetWindowText(str1);
}
if (p_Edit2.Chenge)
{p_Edit2.GetWindowText(str1);
}


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


Материалист
**


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

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



Я бы сделал так: Завел бы переменную bool типа если true - 1й эдит, false - 2й, и в обработчике щелчка по эдиту менял эту переменную. Типа щелкнули по первому эдиту m_EditNum = true; - например. 


--------------------
忍者

user posted image
PM MAIL   Вверх
Sasha1
Дата 7.5.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а можешь код привести . идеи как таковы , есть а как их в МВС реализовать аот в чём вопрос ? ) 
PM MAIL   Вверх
Dray
Дата 7.5.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


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

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



Завиди переменную булевскую:
Код

class CDvaEditaDlg : public CDialog
{
// Construction
public:
    CDvaEditaDlg(CWnd* pParent = NULL);    // standard constructor

// Dialog Data
    //{{AFX_DATA(CDvaEditaDlg)
    enum { IDD = IDD_DVAEDITA_DIALOG };
    CString    m_edit1;
    CString    m_edit2;
    //}}AFX_DATA

    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CDvaEditaDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL

// Implementation
protected:
    bool m_EditNo;  //Вот она!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    HICON m_hIcon;

    // Generated message map functions
    //{{AFX_MSG(CDvaEditaDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    afx_msg void OnSetfocusEdit1();
    afx_msg void OnSetfocusEdit2();
    afx_msg void OnButton1();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

И лучше обрабатывать события не щелчка, а получения фокуса:
Код

void CDvaEditaDlg::OnSetfocusEdit1() 
{    
    m_EditNo=true;
}

void CDvaEditaDlg::OnSetfocusEdit2() 
{
    m_EditNo=false;
}

void CDvaEditaDlg::OnButton1() 
{
    if(m_EditNo)m_edit1+="1";
    else m_edit2+="1";
    UpdateData (FALSE);
}

Прикрепил проджект 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  DvaEdita.rar 24,06 Kb


--------------------
忍者

user posted image
PM MAIL   Вверх
Любитель
Дата 7.5.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Лучше не булевскую, а указатель на CEdit. И обрабатываем потерю фокуса. 


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


 




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


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

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