Удалить выделение из инициализированного текста (отменить выделение) в элементе управления CEdit - PullRequest
3 голосов
/ 06 октября 2010

У меня есть контроль CEdit, и я не хочу, чтобы какой-либо текст был выбран по умолчанию.Я пытался использовать

    m_txtURL.SetSel(-1, 0, TRUE);

, чтобы удалить выделение, но безрезультатно.Кто-нибудь может предложить способ добиться этого?

Я попытался выбрать некоторые символы, используя следующую кодировку.Это тоже не сработало.

m_txtURL.SetSel(-1, 0, TRUE);

Может кто-нибудь сказать мне, в чем может быть проблема?

Ответы [ 2 ]

3 голосов
/ 06 октября 2010

Теперь я могу отменить выбор текста в элементе управления Edit. Элемент редактирования, который я использую, является первым элементом управления в диалоговом окне, поэтому по умолчанию первый элемент управления в диалоговом окне имеет фокус. Из отзыва разработчиков :

Если OnInitDialog возвращает ненулевое значение, Windows устанавливает фокус ввода на Первый элемент управления в диалоговом окне. приложение может вернуть 0, только если оно явно установил фокус ввода один из элементов управления в диалоговом окне.

Нет, я сделал следующее:

BOOL CIegSettingsDlg::OnInitDialog()
{
    CDialog::OnInitDialog();


    return FALSE;  // return TRUE unless you set the focus to a control
}

Этим мы указываем диалоговому окну, что мы позаботимся о фокусировке элемента управления.

0 голосов
/ 06 октября 2010

Вопрос в том, почему ваш текст выбран по умолчанию?

  • Подкласс его, используя DDX_Control(pDX, IDC_EDIT1, m_txtURL)
  • Установите текст m_txtURL.SetWindowText(_T("just some text")) в OnInitDialog

Ничего не должно быть выбрано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...