Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Edit в DialogBox'e, Как отследить нажатие клавиши Enter? 
:(
    Опции темы
dead_ricky
Дата 24.6.2002, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня проект на Диалоге (Dialog based (так вроде)), так вот, там на диалоге есть Edit (компонент (или че это такое в VC - в общем поле для ввода текста)). Так вот, по нажатию клавиши Enter оно (окно) закрывается...

А как мне сделать так че бы не закрывалось?

Могу сделать че бы на любую клавишу реагировал - но только не на Enter :(
В чем прикол? ??? :(

З.Ы. А почему ваще MS VC назвали Visual - это прикол такой да?  ;-)
PM MAIL   Вверх
Baa
Дата 24.6.2002, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Всем просто :)
Было:
void CMFcDlg::OnBnClickedOk()
{
OnOK();
}
Стало:
void CMFcDlg::OnBnClickedOk()
{
//OnOK(); или вообще в делит эту строку
}


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Temnozor
Дата 5.7.2002, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообще-то диалог еще и клавишу ESC любит. Так что OnCancel тоже так же блокировать приходится. Самое обидное, что даже если в диалоге и кнопок-то OK и Cancel нету, но все равно нажатие Enter вызывает OnOK, а нажатие ESC - OnCancel. :angry:

Цитата
З.Ы. А почему ваще MS VC назвали Visual - это прикол такой да?

К примеру Visual Basic переводится как "Симпатичный Вася".
--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
Blade
  Дата 8.10.2002, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А если мне не нужно отбражать кнопки OK и Cancel, то как мне делать обработчики? Можно, конечно, сделать кнопки невидимыми, но это криво.
PM MAIL   Вверх
Guest
Дата 2.6.2005, 17:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











smile smile smile smile smile smile smile smile smile smile
  Вверх
bel_nikita
Дата 2.6.2005, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Сделай производный класс от CEdit и лови там.
Вот, когда-то у себя делал следующее:
*.H
Код

#if !defined(AFX_CEDITPASSWORD_H__6CB3C336_3468_4AB5_98A8_B0FEFA973C38__INCLUDED_)
#define AFX_CEDITPASSWORD_H__6CB3C336_3468_4AB5_98A8_B0FEFA973C38__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// cEditPassword.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// cEditPassword window

class cEditPassword : public CEdit
{
// Construction
public:
    cEditPassword();

// Attributes
public:

// Operations
public:

  CString  GetPassword() { return m_strPassword; }

// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(cEditPassword)
    //}}AFX_VIRTUAL

// Implementation
public:
    virtual ~cEditPassword();

    // Generated message map functions
protected:

  CString m_strPassword;
  void PasswordInput();

  //{{AFX_MSG(cEditPassword)
    afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
    afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CEDITPASSWORD_H__6CB3C336_3468_4AB5_98A8_B0FEFA973C38__INCLUDED_)

*.CPP
Код

// cEditPassword.cpp : implementation file
//

#include "stdafx.h"
//#include "    \ add additional includes here"
#include "cEditPassword.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// cEditPassword

cEditPassword::cEditPassword()
{
}

cEditPassword::~cEditPassword()
{
}


BEGIN_MESSAGE_MAP(cEditPassword, CEdit)
    //{{AFX_MSG_MAP(cEditPassword)
    ON_WM_CHAR()
    ON_WM_KEYDOWN()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// cEditPassword message handlers

void cEditPassword::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    // TODO: Add your message handler code here and/or call default
  switch(nChar) {
  case VK_RETURN:
    //PasswordInput();
    break;
  case VK_BACK:
    m_strPassword.Delete(m_strPassword.GetLength() - 1);
    break;
  default:
    m_strPassword += nChar;
    break;
  }
    CEdit::OnChar(nChar, nRepCnt, nFlags);
}

void cEditPassword::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    // TODO: Add your message handler code here and/or call default
  if ( nChar == VK_DELETE )
  {
    int iBegin,iEnd;
    GetSel(iBegin,iEnd);
    if ( iBegin != iEnd )
      m_strPassword.Delete(iBegin,iEnd - iBegin);
  }
  CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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