2009-05-15 3 views
3

이 질문은 related to this one입니다.CToolTipCtrl의 도구 rect를 수정하는 방법?

int CMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
    if (CDockablePane::OnCreate(lpCreateStruct) == -1) 
     return -1; 

    const DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 
     TVS_CHECKBOXES | TVS_DISABLEDRAGDROP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | 
     TVS_INFOTIP | TVS_NOHSCROLL | TVS_SHOWSELALWAYS; 

    if(!m_tree.Create(dwStyle, m_treeRect, this, TREECTRL_ID)) { return -1; } 

    m_pToolTip->AddTool(&m_tree, LPSTR_TEXTCALLBACK, &m_treeRect, TREECTRL_ID); 
    m_tree.SetToolTips(m_pToolTip); 


    return 0; 
} 

나는 기본값 원하기 때문에 옵션의 모든 매개 변수와 AddTool()를 호출해야하십시오 CDockablePane 파생 클래스에서

난에서 OnCreate()에서 도구 설명을 추가하는 대한 CTreeCtrl의 구성원이 CDockablePane으로 작업하지 마십시오.
m_treeRect은 CTor에서 (0, 0, 10000, 10000)으로 설정된 CRect 구성원입니다. 이것은 정말로 추악합니다.

m_tree의 크기가 변경 될 때마다 도구의 사각형을 조정하고 싶습니다.
그래서 CMyPane::OnSize()에서 몇 가지 물건을 시도했지만 아무도 일하지 :

  • 는 다음이 의미하는 방법 m_pToolTip->SetToolRect()

를 호출 SetToolInfo()

  • 를 호출 한 후 CToolInfo의 RECT 멤버를 수정 m_pToolTip->GetToolInfo()를 호출 수행 할? 당신이 코드의 차이 무엇을

    void CMyPane::OnSize(UINT nType, int cx, int cy) 
    { 
        CDockablePane::OnSize(nType, cx, cy); 
    
        if (m_pToolTip != NULL) 
        { 
         m_pToolTip->DelTool(&m_tree, TREECTRL_ID); 
    
         CRect treeRect; 
         m_tree.GetClientRect(treeRect); 
    
         m_pToolTip->AddTool(&m_tree, LPSTR_TEXTCALLBACK, &treeRect, TREECTRL_ID); 
        } 
    } 
    
  • 답변

    3

    나는 당신의 OnSize 처리기에 다음 다시 AddToolDelTool를 호출하는 것보다이 다른 작업을 수행하는 다른 방법을 알지? 나는 그것을 보지 않는다 ...
    1
    int CMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    { 
        if (CDockablePane::OnCreate(lpCreateStruct) == -1) 
         return -1; 
    
        const DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 
         TVS_CHECKBOXES | TVS_DISABLEDRAGDROP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | 
         TVS_INFOTIP | TVS_NOHSCROLL | TVS_SHOWSELALWAYS; 
    
        if(!m_tree.Create(dwStyle, m_treeRect, this, TREECTRL_ID)) { return -1; } 
    
        m_pToolTip->AddTool(&m_tree, LPSTR_TEXTCALLBACK, &m_treeRect, TREECTRL_ID); 
        m_tree.SetToolTips(m_pToolTip); 
    
    
        return 0; 
    } 
    
    +1

    을 게시 것 : – foraidt