MFC 65

[MFC Hole]CWnd::SubclassWindow(), CWnd::UnsubclassWindow()

[MFC Hole]CWnd::SubclassWindow(), CWnd::UnsubclassWindow() | 프로그래밍 전반 2008/08/31 08:55 스파이럴(gae11) http://memolog.blog.naver.com/gae11/578 삶 그리고 깨달음 | 프리맨 http://blog.naver.com/lonekid/60007134487 MFC CWnd 클래스의 SubclassWindow()를 사용함에 있어 주의해야 하는 제약 사항이 있다. 이미 CWnd 오브젝트에 맵핑되어 있는 hWnd를 파라미터로 하여 CWnd::SubclassWindow()를 호출하게 되면 충돌이 발생한다. 이런 경우는 서브클래싱을 통해 추가적인 기능을 제공하는 범용 클래스를 소스 레벨에서 통합시킬 때 발생할 수 있다...

MFC 2008.08.31

novtable 사용의미

virtual 함수를 가질수 없는 클래스 조회(266) 모바일/Embed/WinCE | 2004/08/14 (토) 01:52 추천하기(0) | 스크랩하기(0) MGI 파일을 액세스 하기 위해서 파일 헤더를 구조체로 만들었습니다. typedef struct tagMGI { char m_ID[32]; WORD m_Version; char m_CopyRight[32]; WORD m_PicCount1; WORD m_PicCount2; WORD m_Speed; WORD m_Reserved1; WORD m_ColorCount; WORD m_Reserved2; } MGI; CRect나 CPoint가 RECT와 POINT로부터 상속받아 편리하게 사용하는 것처럼 저도 이 구조체로부터 상속 받아 클래스를 만들었습니다. 한..

MFC 2008.08.30

MFC 메시지 맵과 메시지 핸들링 원리

(아래 발췌내용중 잘못된 부분) CWnd 클래스의 경우 Notify나 Command를 제외한 윈도우 메시지 처리함수만이 일반멤버함수로 정의되어 있었다. OnCommand나 OnNotify 등의 경우는 가상함수이다. 이런 경우는 인스턴스의 가상함수를 호출할 것이다. class CWnd : public CCmdTarget virtual BOOL Create( // 가상함수 LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, Const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL );afx_msg void OnKeyDown( // 일반 함수 UINT nChar, UIN..

MFC 2008.08.30

CView클래스에 대해...Visual C++ 6 강좌(033)

CView클래스에 대해...Visual C++ 6 강좌(033) 조회(278) 프로그래밍 | 2004/05/25 (화) 09:56 추천하기(0) | 스크랩하기(2) Visual C++ 6 강좌(033) 10.AFX(Application Frameworks) (계속10) 4.CView CView클래스도 CWnd클래스에서 상속받은 파생클래스입니다..그러니 메시지 핸들러 함수라든지 윈도우 자체를 제어하는 기능들을 다 포함하고 있는 셈이죠... 이 일반적인 원도우로서의 역할에다가 뷰윈도우로서의 고유한 역할을 추가한 것이 CView클래스 입니다.. 벌써 설명을 다 했듯이 데이터를 여러 가지 방법으로 보여주는 역할을 하지요.. 그리고 CFrameWnd나 CWndApp같은 클래스는 거의 대부분의 윈도우 응용프로그램들..

MFC 2008.08.30

CView 클래스

CView CView 클래스는 사용자정의 뷰 클래스를 위한 기본적인 기능들을 제공한다. 뷰는 도큐먼트에 부착되어있어서 사용자와 도큐먼트간의 중계자로써의 역할을 한다: 뷰는 스크린 또는 프린터상에 도큐먼트의 형상을 보여주고, 사용자입력을 해석하여 도큐먼트에 전달한다. 뷰는 프레임 윈도우의 자식 윈도우이다. 하나 이상의 뷰는 스플릿터 윈도우의 경우처럼 하나의 프레임 윈도우를 공유할 수 있다. 뷰 클래스와 프레임 윈도우 클래스, 도큐먼트 클래스간의 관계는 CDocTemplate 객체에 의해 설립된다. 사용자가 새로운 윈도우를 열거나 기존의 것을 스플릿터로 나누면 프레임워크는 새로운 뷰를 생성하여 이것을 도큐먼트에 붙인다. 뷰는 오직 하나의 도큐먼트에만 붙을 수 있다. 그러나, 도큐먼트는 한 번에 여러 개의 뷰..

MFC 2008.08.30

MFC 메시지 맵의 구현 원리

MFC 메시지 맵의 구현 원리 | C/C++ 2006.04.01 23:01 가리비(ygaribi) http://cafe.naver.com/ygaribi/68 MessageMap 구조체를 다음과 같이 만들 수 있다. class CView; typedef void (CView::*CViewFunPointer)(); typedef struct tagMessageMap { UINT iMsg; CViewFunPointer fp; } MessageMap; 구조체의 첫번째 멤버는 윈도우 메시지, 두번째 멤버는 CView 클래스의 멤보 함수의 시작 주소 static CViewFunPointer fpCViewGlobal; CView 클래스에서 메시지 맵은 static으로 선언된다. class CView : public ..

MFC 2008.08.30

강력한 에디터 CRichEditView

강력한 에디터 CRichEditView 도큐먼트를 파일에 저장하는 부분에 강력한 에디터를 소개하는것이 걸맞지 않다고 생각할지 모릅니다. 그러나 많은 양의 데이터를 저장한다고 가정을 할경우 에디터가 가장 편리하기 때문에 파일입출력 항목에 RichEdit에 대한 설명을 포함시켰습니다. 본장에서 만들 예제는 MExSer입니다. 이 프로젝트를 만들때 이제는 SDI를 이용합니다. Multiple Document Interface형태로 프로젝트를 만든다는 것입니다. 이프로젝트를 만들때 Step6에서 MExSerView를 CRichEditView를 Base class로 설정합니다. 그림 1은 MExSer 프로젝트를 만들때 AppWizard의 Step6의 화면입니다. (그림 1)MExSer 프로젝트 제작시 Step6 ..

MFC 2008.08.30

◎ MFC Class 레퍼런스(한글번역)

◎ MFC Class 레퍼런스(한글번역) 1. CWnd 클래스 1) CWnd - 1 2) CWnd - 2 3) CWnd - 3 2. CFrameWnd 클래스 1) CMenu 클래스 2) CControlBar 클래스 3) CToolBar 클래스 4) CDialogBar 클래스 4) COleResizeBar 클래스 3. CView 클래스 1) CEditView 클래스 2) CFormView 클래스 3) CListView 클래스 4) CRichEditView 클래스 5) CScrollView 클래스 6) CTreeView 클래스 4. CDocument 클래스 5. CDialog 클래스 1) CColorDialog 클래스 2) CFileDialog 클래스 3) CFontDialog 클래스 4) CPageSetu..

MFC 2008.08.30