如何使用MFC更改热键中的文本颜色?

如何使用MFC更改热键中的文本颜色?,mfc,hotkeys,visual-c++-2005,Mfc,Hotkeys,Visual C++ 2005,问题是这样的:定义一个新的类继承CHotKeyCtrl,我想更改热键中的文本颜色。使用ON_WM_CTLCOLOR_REFLECT,但测试颜色未更改。onctlcolor函数无法运行 MyHotKey.h class CMyHotKey: public CHotKeyCtrl { DECLARE_DYNAMIC(CMyHotKey) protected: DECLARE_MESSAGE_MAP() public: afx_msg HBRUSH CtlColor(C

问题是这样的:定义一个新的类继承CHotKeyCtrl,我想更改热键中的文本颜色。使用ON_WM_CTLCOLOR_REFLECT,但测试颜色未更改。onctlcolor函数无法运行

MyHotKey.h
class CMyHotKey: public CHotKeyCtrl
{
   DECLARE_DYNAMIC(CMyHotKey)
   protected:
   DECLARE_MESSAGE_MAP()
   public: 
   afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
};
MyHotKey.cpp    
BEGIN_MESSAGE_MAP(CMyHotkey, CHotKeyCtrl) 
   ON_WM_CTLCOLOR_REFLECT()
   ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
HBRUSH CMyHotKey::CtlColor(CDC* pDC, UINT nCtlColor)
{
   if(pDC)
   {
       pDC->SetTextColor(RGB(255,0,0));
       pDC->SetBkMode(TRANSPARENT);
   }
   return (HBRUSH)GetStockObject(NULL_BRUSH);
}

有人能告诉我哪里做错了吗?

您使用的是哪个版本的Visual Studio?您所说的onctlcolor函数无法运行到底是什么意思?是否出现编译错误、运行时错误等?Visual Studio 2005。无错误,但热键文本颜色无法更改,文本使用背景系统颜色窗口绘制,未调用WM\U CTLCOLOR。a父窗口中是否有CTLCOLOR处理程序?表示…如果在对话框类中处理WM_CTLCOLOR,则处理将覆盖任何反射的消息处理程序。。。b尝试返回非空笔刷,如返回GetSysColorBrushCOLOR\u窗口@Edward Clements aEdit控件文本颜色可以在我的对话框中以这种方式更改。br返回非空值无法更改文本颜色。CMyHotkey似乎无法响应WM_颜色消息。是否有其他方法可以更改热键ctrl文本颜色?可能有误解-根据我上面引用的MSDN文章,如果对话框类中有WM_CTLCOLOR处理程序,它将覆盖您在CMyHotKey::CTLCOLOR中所做的操作;如果您在CMyHotKey::CtlColor中放置一个断点,执行是否会在那里进行?