情景:
我做了個(gè)對話框,里面只包含一個(gè)富文本框。對應(yīng)的類為CCmdRichEdit繼承自CRichEditCtrl。
因?yàn)槟J(rèn)的CRichEditCtrl它不像CEdit那樣,單擊右鍵時(shí)是不會彈出菜單的。因此我自己實(shí)現(xiàn)了“復(fù)制”,“粘貼”,“剪切”功能的右鍵菜單。
隨后發(fā)現(xiàn),功能一切正常,但是當(dāng)鼠標(biāo)移至菜單上時(shí),沒有變成常見的那種箭頭式指針。
過程:
嘗試了在OnContextMenu,OnMouseMove, 中調(diào)用::SetCursor(LoadCursor(NULL, IDC_ARROW));
都不起作用。
注意:
每次移動鼠標(biāo),OnMouseMove都會默認(rèn)的改變指針的樣式,但在里面修改卻對右鍵菜單不起作用。
解決辦法:
1、設(shè)置個(gè)類變量m_bContext,在OnContext開始和結(jié)束分別設(shè)為 TRUE和FALSE;
2、OnSetCursor中根據(jù)m_bContext來改變光標(biāo)形式。
BOOL CCmdRichEdit::OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message)
{
//文本框右鍵的指針設(shè)為箭頭
if(m_bShowContext)
{
::SetCursor(LoadCursor(NULL, IDC_ARROW));
return TRUE;
}
return CRichEditCtrl::OnSetCursor(pWnd, nHitTest, message);
}