怎么没人关注呢?  现在wtl这么火, 研究这个有好处的

解决方案 »

  1.   

    背景有擦除的, 下面是CHyperLink自己的处理函数。  其实下划线就是切换了一下字体。 鼠标移走的时候字体没有换过来。
    LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    {
    return 1;   // no background painting needed (we do it all during WM_PAINT)
    } LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
    {
    if(!m_bPaintLabel)
    {
    bHandled = FALSE;
    return 1;
    } T* pT = static_cast<T*>(this);
    if(wParam != NULL)
    {
    pT->DoEraseBackground((HDC)wParam);
    pT->DoPaint((HDC)wParam);
    }
    else
    {
    CPaintDC dc(m_hWnd);
    pT->DoEraseBackground(dc.m_hDC);
    pT->DoPaint(dc.m_hDC);
    } return 0;
    }