簡體   English   中英

MFC Rich Edit Control 2.0接收單擊事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM