티스토리 뷰

MFC

[MFC] Creating a square information move dialog

열혈허슬러 상추님 2019. 11. 8. 11:06
190717 - 4
 

 
사각 정보 이동 다이얼로그 만들기
 
이벤트 처리기를 Doc에 생성
 
프레임은 어디서든지 메인프레임을 얻을 수 있다.
#include "MainFrm.h"
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
 
void CCBDoc::OnRectmove()
{
    CMoveDlg dlg;
    if (IDOK == dlg.DoModal()) {
        // TODO: 정보 변경 하는 코드 추가
        POSITION pos = m_rtList.GetHeadPosition();
        while (pos) {
            CRect& rt = m_rtList.GetNext(pos);
            rt.OffsetRect(dlg.m_nX, dlg.m_nY);
        }
//방법1
        pos = this->GetFirstViewPosition();
        this->GetNextView(pos)->Invalidate();
        
//방법2
        //view를 list로 가져오는 멤버변수 사용
        ((CView*)m_viewList.GetHead())->Invalidate();
    }
}
 
-배열 <-> 리스트 변환가능
 

frame
    m_wndStatusBar.SetPaneInfo(1, ID_SEPARATOR, SBS_NORMAL, 250); // 준비 다음 칸에 하나를더 추가함
    m_wndStatusBar.SetPaneText(1, _T("test status"));
 
static UINT indicators[] =
{
    ID_SEPARATOR, // 상태 줄 표시기
    ID_SEPARATOR,// 선택출력용
    ID_SEPARATOR,// 좌표출력용
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
};
 
void CCBView::OnMouseMove(UINT nFlags, CPoint point)
{
    CString s;
    s.Format(_T("좌표: (%d,%d)"), point.x, point.y);
    CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
    pFrame->m_wndStatusBar.SetPaneText(2, s);
    CView::OnMouseMove(nFlags, point);
}
- 마우스 이동시 상태바에 표시하는 코드
공유하기 링크
TAG
댓글
댓글쓰기 폼
네이버 이웃추가
«   2020/08   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함