전체 글 389

ATL_NO_VTABLE

Visual C++ 개념: 프로젝트 만들기 및 관리 ATL 프로젝트에 대한 컴파일러 최적화 지정 기본적으로 ATL 컨트롤 마법사는 ATL_NO_VTABLE 매크로를 사용하여 다음과 같이 새 클래스를 생성합니다. 코드 복사class ATL_NO_VTABLE CProjName { ... }; 그런 다음 ATL은 다음과 같이 _ATL_NO_VTABLE을 정의합니다. 코드 복사#ifdef _ATL_DISABLE_NO_VTABLE #define ATL_NO_VTABLE #else #define ATL_NO_VTABLE __declspec(novtable) #endif _ATL_DISABLE_NO_VTABLE을 정의하지 않으면 ATL_NO_VTABLE 매크로가 declspec(novtable)으로 확장됩니다. 클래..

COM, ATL 2008.08.30

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

Excel,CAD VBA 맛보기 강좌 - 비주얼 베이직 엑셀로 시작하기

http://user.chollian.net/~dolljong/tut/tut.htm Excel,CAD VBA 맛보기 강좌 Excel,CAD VBA 맛보기 강좌 제가 엑셀의 테이블을 캐드로 만들어주는 xls2dwg를 공개하고 나서 많은 분들이 캐드의 ActiveX기능에 대해서 문의를 하셨습니다. 메일로 답변을 보내드리긴 햇지만 과연 잘 알려드린 것인지 염려가 되어 이번 강좌를 준비하게되었습니다. 아무쪼록 많은 분들에게 도움이 되었으면 하는 마음입니다. 강좌에 대한 질문 및 답변은 [다정다감] 게시판을 이용해주시기 바랍니다. 02/06/29 Excel,CAD VBA 맛보기 강좌(25) - Excel에서 사용자 툴바 포함된 xla파일 만들기 01/09/03 Excel,CAD VBA 맛보기 강좌(24) - En..

비주얼베이직 2008.08.30