我能够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); <---- GIVES ASSERT ERROR ReplaceCharsCtrl hWnd = NULL
return TRUE;
}
请参阅帖子正文。