오후 12:21 2000-04-17
조경민
-------------------------------------------------------------------
다이얼로그에 트리뷰 붙여서 에디트 라벨하기

void CTestTreeEditDlg::OnBeginlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
        TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
        // TODO: Add your control notification handler code here
        CEdit* pEdit = m_Tree.GetEditControl();
        // 수정용...
        pEdit->SetWindowText(_T("Item1"));
        // 아래 한줄만 붙이면 된다. ( 127자로 제한 할수도 있다 )
        m_Tree.GetEditControl()->LimitText(127);

        *pResult = 0;
}

void CTestTreeEditDlg::OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
        TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
        // TODO: Add your control notification handler code here
        static char* pszAdd = _T("-> [Attributes]");

        TRACE("%d\n",pTVDispInfo->item.cchTextMax );        // 260
        // 다쓰고 수정가능하다. cchTextMax는 pszText의
        // 버퍼 크기로 꽤 크다. 260이다.
        // 아래 처럼하면 라벨 에디트후 pszAdd가 붙어 쓰여진다.
        strcat( pTVDispInfo->item.pszText, pszAdd );        
        

        *pResult = TRUE;
}

BOOL CTestTreeEditDlg::PreTranslateMessage(MSG* pMsg)
{
        // TODO: Add your specialized code here and/or call the base class
        // 다이얼로그 베이스 경우 엔터 치면 바로 다이얼로그가 죽으므로
        // 아래 처럼 한다.
        if( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN )
        {
                TreeView_EndEditLabelNow( m_Tree.GetSafeHwnd(), false );
                return TRUE;
        }
        return CDialog::PreTranslateMessage(pMsg);
}

'KB > MFC/Win32' 카테고리의 다른 글

ASP 업로드 컴포넌트 만들기  (0) 2004.03.19
파레트 in MemoryDC 비트맵  (0) 2004.03.19
툴바 리바 색깔 바꾸기  (0) 2004.03.19
윈도우 타이틀 깜빡거리게 하기  (0) 2004.03.19
msword 오토메이션 예  (0) 2004.03.19

+ Recent posts