Как выделить текст внутри поля CEdit внутри OnInitDialogC++

Программы на C++. Форум разработчиков
Anonymous
Как выделить текст внутри поля CEdit внутри OnInitDialog

Сообщение Anonymous »

Я могу отобразить несколько символов внутри элемента управления CEdit, используя приведенный ниже код в функции OnInitDialog(), но я не могу выделить тот же текст в теле функции OnInitDialog(). Я просто не знаю, как это сделать. В моем классе CReplaceCharacterDlg я добавил с помощью мастера переменную CEdit replaceCharsCtrl и создал элемент управления CEdit с помощью редактора ресурсов. Я попробовал следующую строку в своей функции OnInitDialog(), как показано ниже, но получил ошибку «Ошибка утверждения отладки». Может кто-нибудь подсказать мне, как это можно сделать, пожалуйста?
Ошибка утверждения отладки

Код: Выделить всё

// CReplaceCharacter dialog

class CReplaceCharacterDlg : public CDialogEx
{
DECLARE_DYNAMIC(CReplaceCharacterDlg)

public:
CReplaceCharacterDlg(CWnd* pParent = nullptr);   // standard constructor
CReplaceCharacterDlg(CWnd* pPar, CStringW replaceStrW);
virtual ~CReplaceCharacterDlg();

// Dialog Data
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_REPLACE_CHAR };
#endif

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
virtual BOOL OnInitDialog();

DECLARE_MESSAGE_MAP()
public:
CEdit ReplaceCharsCtrl;
CStringW ReplacementCharacterStr;
afx_msg void OnBnClickedOk();
};

// Implementation
BOOL CReplaceCharacterDlg::OnInitDialog()
{
GetDlgItem(IDC_EDIT1)->SetWindowTextW(ReplacementCharacterStr);
ReplaceCharsCtrl.SetHighlight(0, 2);  

Подробнее здесь: [url]https://stackoverflow.com/questions/79146274/how-to-highlight-text-inside-a-cedit-field-inside-oninitdialog[/url]

Вернуться в «C++»