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);
}
但是热键控件的字体颜色没有改变?mfc热键控件WM_CTRL

解决方案 »

  1.   

    我是这么弄成红色的,OnCtlColor()中
    if (pWnd->GetDlgCtrlID() == IDC_STATIC_SHOPCARD //static 字弄成红色的
    || pWnd->GetDlgCtrlID() == IDC_STATIC_SHOPCARD2 
    || pWnd->GetDlgCtrlID() == IDC_STATIC_SHOPCARD3 
    )
    {
    pDC->SetTextColor(RGB(255,0,0));
    pDC->SetBkMode(TRANSPARENT);
    }
    参考一下!
      

  2.   

    我试过了,edit,static控件都可以使用WM_COLOR改变控件颜色,但是CHotCtrk控件,好像没有响应WM_COLOR消息,ON_WM_CTLCOLOR_REFLECT() 和ON_WM_CTLCOLOR()都不能改变控件的字体颜色,ON_WM_ERASEBKGND()可以改变背景色。
    请问还有没有其他的方法呢