Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
1 / 0 / 1
Регистрация: 22.12.2008
Сообщений: 19
1

Как поставить фокус на Edit

06.04.2009, 21:54. Показов 4518. Ответов 3
Метки нет (Все метки)

У меня есть диалоговое окно. В нем есть Edit Box. Подскажите пожалуйста. как на MFC сделать так, чтобы сразу при отображении окна edit box сразу стала активной(т.е. чтобы в нее сразу. без клика по ней мышкой, можно было вводить текст).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2009, 21:54
Ответы с готовыми решениями:

Как забрать фокус ввода у Edit?
Как забрать фокус ввода у Edit?

Как убрать/поставить фокус на элементе?
у меня есть обработчик события public void KeyDown_Event(object sender, KeyEventArgs e) ...

Как програмно поставить фокус на ячейку в JTable ?
Как програмно поставить фокус на ячейку в JTable ? Это самый главный вопрос. и дополнительный:...

Как поставить фокус на TextBoxe рассположенном на листе (не на форме)?
Как поставить фокус на TextBoxe рассположенном на листе (не на форме)? На форме понятно...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
3
2 / 1 / 1
Регистрация: 02.04.2009
Сообщений: 28
06.04.2009, 22:31 2
SetFocus()-єта на builder но можэт подаёдьот.
0
Заблокирован
07.04.2009, 09:25 3
Объяви свой эдит не только как переменную но и как элемент класса CEdit єто мона сделать в класс визарде с помощью AddVariable тебе нужно поставить в списке Category значение Control, а дальме всё как stels сказал
Например у тебя
m_edit1 - это переменная какого-нибудь типа а
m_edit1_1 - это контрол CEdit
так вот пропиши m_edit1_1.SetFocus(); и всё...
Для того что эдит в самом начале активным был то нужно прописать SetFocus()
в функции OnInitDialog()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
BOOL CTest_44Dlg::OnInitDialog()
{
    CDialog::OnInitDialog();
 
    // Add "About..." menu item to system menu.
 
    // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);
 
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }
 
    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);         // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
    
    // TODO: Add extra initialization here
    m_edit1_1.SetFocus();//вот здесь пропиши
    return TRUE;  // return TRUE  unless you set the focus to a control
}
Кстати отчистить эдит если у тебя он текстовый можно с помощью след функций для контрола
C++
1
2
m_edit1_1.SetSel(0,-1,false);
m_edit1_1.Clear();
0
1 / 0 / 1
Регистрация: 22.12.2008
Сообщений: 19
08.04.2009, 18:52  [ТС] 4
Почему то не работает так. Все равно Edit остается пустым и по нему надо мышкой кликнуть чтобы начать вводить текст. В редакторе ресурсов убрал у кнопки OK свойство default button, но она все равно при компиляции ею остается, может в этом дело? Как это можно исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BOOL DlgAdd::OnInitDialog() 
{
    CDialog::OnInitDialog() ;
    
    /*if(IsCh==true)                       // èçìåíåíèå, âûâîäèì äàííûå
    {
        m_cname=Book.SName(Book.pcont[SelNum]) ;
        m_cnum1=Book.SNumber(Book.pcont[SelNum],0) ;
        m_cnum2=Book.SNumber(Book.pcont[SelNum],1) ;
        m_cnum3=Book.SNumber(Book.pcont[SelNum],2) ;
        m_cnum4=Book.SNumber(Book.pcont[SelNum],3) ;
        m_cnum5=Book.SNumber(Book.pcont[SelNum],4) ;
        UpdateData(false) ;
    } */
    
    m_cnamectrl.SetFocus() ;
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2009, 18:52

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как установить фокус ввода на динамически созданный контрол Edit?
Здравствуйте! Создаю через CreateWindowEx контрол EDIT со стилем ES_MULTILINE. Все работает...

Как поставить пробел между информацией из 2-х Edit'ов?
Как поставить пробел между информацией из 2х Edit'в, которая перемещается в 1 Edit...

Как поставить маску ввода в Edit без MaskEdit?
Подскажите пожалуйста, можно как-то поставить маску ввода без использования maskEdit в обычный...

Edit и фокус
на форме находятся 2 editа и кнопка (при нажатии которой в текст одного из edit дописывалась цифра...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.