본문 바로가기

Language/MFC

MFC Class 삭제 하는 방법 - 생성한 Class를 간단히 완전제거 MFC (1) 프로젝트에 보면 *.clw 화일이 클래스정보를 가지고 있거든요 첫번째) "FileView"에서 클래스에 대한 화일을 제거 두번째) 그 화일이 있는 폴더로 가서 화일 제거 세번째) 그 화일의 내용을 가지고 있었던 프로젝트로 가서 clw화일을 제거 그 후 다시 똑같은 이름의 클래스를 생성하시면 똑같은 클래스 이름이 있다는 에러 메세지가 안뜰겁니다. clw화일을 만들려면 클래스 위자드(Ctrl + w : 비쥬얼 스튜디오 6 기준)를 누른 후 clw화일이 제거된 프로젝트로 이동하시면 파일이름을 넣으라고 나오는데 그때 clw화일의 이름을 확장자와 함께 넣으시면 됩니다. - 생성한 Class를 간단히 완전제거 MFC (2) 간단한 예로 설명을 시작하자면, 우선 .. 더보기
컨트롤 핸들 얻기 컨트롤 핸들 얻어오기 CWnd::GetDlgItem 함수의 원형 CWnd *GetDlgItem(int nID) const; 2. 초...간단......하게..ㅡ.ㅡ ㅋㅋㅋㅋㅋㅋ 더보기
슬라이더컨트롤(SliderControl) 만일 일반 View에 슬라이더 컨트롤을 올리려고 한다면, 기본적으로 버튼 컨트롤을 올리는 방법과 유사하다. 우선적으로 슬라이더 컨트롤의 클래스의 객체를 생성한다음 아래의 함수를 사용하여 생성을 하게 되는데 이때 객체를 생성->동적할당 의 순서를 마치면 Create함수를 사용하여 슬라이더 컨트롤을 올리면 된다. CSliderCtrl::Create(DWORD dwStyle,Const Rect& rect,CWnd* pParentWnd, UINT nID); dwStyle : 주로 TBS_AUTOTICKS rect : 슬라이더 컨트롤의 크기를 잡는다. 당연히 사각형이니 left, top,right,bottom이겠지.. pParentWnd : 띄우고자 하는 view의 핸들값 nID : 해당 ID(흠...난이거 대충.. 더보기
뷰에 컨트롤 그리기(버튼컨트롤&리스트컨트롤) Dialog 기반의 formView나 걍 Dialog 라면 문제 없이 컨트롤을 넣지만 일반 VIew에 컨트롤을 그리라고 하면 좀 막막하다. 젠장 이것때문에 엄청난 시간을 투자한것을 생각하면...ㅡㅡ 여기 나온 내용은 '비주얼 C++ 제대로 활용하기' 라는 책에서 참고한 겁니다. 1. 버튼 컨트롤 1) 뷰 클래스 헤더파일에 버튼을 위한 포인터를 하나 추가한다. CButton *pButton; 2) 포인터를 만든 후, 버튼 객체를 new 연산자를 이용하여 객체를 생성한다. OnInitialUpdate() 함수는 뷰가 생성된 후 윈도우에 그려지기 바로 직전에 호출되는 함수이다. 따라서 여기서 버튼의 초기화를 한다. new 연산자는 필요하다면 생성자에 넣어도 된다. void CMyCtrlView::OnIniti.. 더보기
마우스 휠 이벤트 마우스 휠 이벤트 마우스 휠 이벤트는 OnMuseWheel함수에서 처리를 하게 되며, 다음과 같다. ///////////////////////////////////////////////////////////////////////////// BOOL CDcmEditToolView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: Add your message handler code here and/or call default CDcmEditToolDoc* pDoc = GetDocument(); if(zDelta 더보기
클래스 삭제 방법 일반적으로 프로젝트에서 cpp파일과h파일을 제외시켜도 ClassWizard 에는 클래스가 계속적으로 남아있게 된다. 이것때문에 다시 프로젝트를 만든적도 있었지...아마..-_-; - 생성한 Class를 간단히 완전제거 MFC (1) 프로젝트에 보면 *.clw 화일이 클래스정보를 가지고 있다. 첫번째) "FileView"에서 클래스에 대한 화일을 제거 두번째) 그 화일이 있는 폴더로 가서 화일 제거 세번째) 그 화일의 내용을 가지고 있었던 프로젝트로 가서 clw화일을 제거 그 후 다시 똑같은 이름의 클래스를 생성하시면 똑같은 클래스 이름이 있다는 에러 메세지가 안뜬다. clw화일을 만들려면 클래스 위자드(Ctrl + w : 비쥬얼 스튜디오 6 기준)를 누른 후 clw화일이 제거된 프로젝트로 이동하시면 파일.. 더보기
기본적인 MFC TIP . DC얻기 CClientDC dc(this); 2. Client 영역 구하기 GetClientRect(&rect); WM_SIZE 메시지발생후 cx,cy 사용 3. 문자열 사각형안에 그리기 pDC->DrawText(문자열,사각형,Style); Style: DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시 DT_SINGLELINE과 함께사용 DT_CENTER - 문자열을 가로중앙에 배치 DT_VCENTER - 문자열을 세로중앙에 배치 DT_LEFT,RIGHT - 문자열을 좌,우로 배치 DT_SINGLELINE - 문자열을 한줄로만 쓴다 4. Brush 사용법 CBrush brushname(RGB(red,green,blue)); //브러쉬 생성 CBrush *oldBrush=pDC->SelectO.. 더보기
기본적인 주요 멤버변수 & 멤버함수 MFC 주요 클래스의 멤버 변수와 멤버 함수 -------------------------------------------------------------------------------- 1. CObject 클래스 2. 애플리케이션 프레임 워크 관련 클래스 1) CWinApp 2) CFrameWnd 3) CView 4) CDocument 3. 윈도우 관련 클래스 : CWnd 4. 디바이스 컨텍스트 클래스 1) CDC 클래스 2) CDC 파생 클래스들 ▶CPaintDC 클래스 ▶CClientDC 클래스 ▶CWindowDC 클래스 ▶CMetaFileDC 클래스 3) CGdiObject 클래스 ----------------------------------------------------------------.. 더보기
CTreeCtrl 함수들 CTreeCtrl 클래스는 윈도우의 공통 컨트롤이며 Win95, NT3.51, Win32 1.3이상 버전에서만 사용 가능합니다. header : afxcmn.h Class : CObject->CCmdTarget->CWnd->CTreeCtrl #트리 컨트롤에서 사용되는 멤버함수에 대한 설명 @생성과 관련된 함수들 CTreeCtrl(); 객체를 생성한다. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); 트리 컨트롤을 생성하고 객체에 부과한다. dwStyle : 컨트롤의 스타일을 설정 rect : 컨트롤의 크기 pParendWnd : 부모 윈도우 핸들 nID : 객체와 연결될 리소스 ID @속성과 관련된 함수 UINT GetC.. 더보기
MemDC MemDC MemDC란 비트맵을 출력하기 위해 CDC를 메모리상에 올려놓고 사용하는 것이다. 비트맵을 블록단위로 전송하기 위하여 또하나의 비트맵을 메모리상에 올려놓고 전송을 해주는 것이다. 비트맵을 운용할 때 메모리상에 있는 비트맵을 가지고 사용을 하면 화면의 끈김이 없어진다. CClientDC WinDC(this); CBitmap bitmap; CDC MemDC; MemDC.CreateCompatibleDC(&WinDC); MemDC.FillSolidRect(0,0,m_winwidth,m_winheight,RGB(255,255,255)); pDC->Bitblt(0,0,win_Width,win_Height,&MemDC,0,0,SRCCOPY); MemDC.SelectObject(); CClientDC Wi.. 더보기