[英]MFC Rich Edit Control 2.0 receiving click event
我希望有人能幫助我解決我遇到的困境。 本質上,我彼此之間有一個Checkbox和一個RichEditControl。 我希望能夠知道用戶何時單擊了我的RichEditControl,以便可以將消息發送到我的復選框以對其進行標記。
最初,我嘗試用空文本覆蓋復選框以充當RichEditControl的“空白”背景,因此我不必擔心左右發送消息。 無論我嘗試了什么“空白”背景,都將重疊RichEditControl文本並將其完全空白。
我在這里搜索了一些幫助,發現這正是我遇到的問題。 我了解他在說什么,但沒有知識去執行他們所說的話。
現在,我正在與EN_LINK一起嘗試捕獲一條消息,這樣我可以告訴我的復選框對其進行標記。
BEGIN_MESSAGE_MAP(TempInit, CDialog)
ON_NOTIFY(EN_LINK, IDC_TempInitMsg, &TempInit::OnEnLinkTempinitmsg)
END_MESSAGE_MAP()
void TempInit::OnEnLinkTempinitmsg(NMHDR *pNMHDR, LRESULT *pResult)
{
ENLINK *pEnLink = reinterpret_cast<ENLINK *>(pNMHDR);
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
radioClicked = !radioClicked;
if (radioClicked == true)
{
GetParent()->SendMessage(WM_MYRADIOCLICKED, CHECKENABLED, 0);
}
else
{
GetParent()->SendMessage(WM_MYRADIOCLICKED, CHECKDISABLED, 0);
}
}
*pResult = 0;
}
如果這完全是錯誤的解決方法,請先抱歉。 我已經搜尋了幾個小時,空手而歸。 如果有人有其他方法,請盡可能幫助我。 如果以上內容還不夠,我可以發布更多代碼。
史蒂文
解決此問題的一種方法是處理來自豐富編輯控件的EN_MSGFILTER
通知。 我不能為你提供任何代碼向您展示如何做到這一點了手,但這里是從的豐富的編輯控件生成通知消息的文檔。 只需像使用單選按鈕一樣處理即可。
當Rich Edit Ctrl擁有焦點時,這將選中該復選框,並在失去焦點時取消選中該復選框。
BEGIN_MESSAGE_MAP(TempInit, CDialogEx)
ON_EN_SETFOCUS(IDC_RICHEDIT21, &TempInit::OnEnSetfocusRichedit21)
ON_EN_KILLFOCUS(IDC_RICHEDIT21, &TempInit::OnEnKillfocusRichedit21)
END_MESSAGE_MAP()
void CMFCApplication1Dlg::OnEnSetfocusRichedit21()
{
CButton* pCheckBox = (CButton*)GetDlgItem(IDC_CHECK1);
pCheckBox->SetCheck(1);
}
void CMFCApplication1Dlg::OnEnKillfocusRichedit21()
{
CButton* pCheckBox = (CButton*)GetDlgItem(IDC_CHECK1);
pCheckBox->SetCheck(0);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.