2014-12-25 2 views
0

나는 현재 MDI의 aaplication의 뷰 부분에 listctrl을 만들려고하고 있는데, 나는 listctrl 포인터를 연결하고있다. 그래서 한 번 그려야한다.하지만 그것을 할 수 없다. 초보자이기 때문에, 아무도 나에게 대답을 제안 할 수있다MDI 응용 프로그램에서 ListCtrl을 뷰에 만들 수 있습니까? 아니면 항상 그릴 필요가 있습니까?

int CDB_DOC_VIEW_MYView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
    if (CView::OnCreate(lpCreateStruct) == -1) 
     return -1; 
    CDB_DOC_VIEW_MYDoc *pDoc = GetDocument(); 
    CRect WndRect, ListRect; 
    this->GetWindowRect(&WndRect); 
    //CListCtrl *pListCtrl = new CListCtrl(); 
    CListCtrl &pListCtrl = GetListCtrl(); 
    /*ListRect.top = WndRect.top - 5; 
    ListRect.left = WndRect.left - 5; 
    ListRect.bottom = WndRect.bottom - 5; 
    ListRect.right = WndRect.right - 5;*/ 
    pListCtrl.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_REPORT , ListRect, this, ID_LIST_CTRL); 
    for(int col = 0; col < 5; col++) 
    { 
     pListCtrl.InsertColumn(col, _T("1")); 
    } 
    pListCtrl.ShowWindow(SW_SHOW); 
    return 0; 
} 

나는 그랬다?

+1

아마도 나야,하지만 나는 당신의 질문이 어떤 의미가 있다고 생각하지 않습니다. –

+1

@JonathanPotter 그것뿐입니다. * * OP가 ListView *를 MDI 자식 창으로 사용하려고합니다. 대부분의 사람들이 MDI 자식 영역을 코드화 할 때 MDI 자식 클라이언트 영역 전체를 포괄하는 자식 제어가 아닙니다. 틀릴 수도 있습니다. 참으로 말하기 어렵습니다. – WhozCraig

+0

나는이 코드를 onsize() 함수에 넣은 후에 만 ​​listctrl을 표시한다. void CDB_DOC_VIEW_MYView :: OnSize (UINT nType, int cx, int cy) { CListView :: OnSize (nType, cx, cy); // 여기에 메시지 처리기 코드를 추가하십시오. if (:: IsWindow (m_listCtrl.m_hWnd)) m_listCtrl.MoveWindow (0,0, cx, cy, TRUE); }하지만, 내가 왜,이 경기장은 getwindowrect()보기, 그리고 내가 만든 함수()에 배치 된 이유는 무엇입니까? –

답변

0

CListView에서 CView를 추출해보십시오.

+0

나는이 모든 일을 성취했다. 덕분에, 너의 제안에 –

관련 문제