독도 광고 모금 캠페인

특별한딸기이야기

블로그 이미지
딸기다운 사이버 공간을 만들고 싶어하는 특별한 딸기의 블로그입니다.
by 특별한녀석
  • 7883Total hit
  • 12Today hit
  • 35Yesterday hit

최근에 달린 레몬펜 쪽지

Statistics Graph

'MFC'에 해당되는 글 25건

  1. 2008/02/10
    컨트롤과 연결가능한 변수 종류
  2. 2008/02/02
    대화상자 생성 및 이벤트 처리
  3. 2008/02/02
    OnInitDialog함수
  4. 2008/02/02
    대화상자 주요 속성
  5. 2008/01/28
    폰트 확인 프로그램 (1)
  6. 2008/01/28
    LOGFONT 기본 설정
  7. 2008/01/28
    텍스트 설정 함수
  8. 2008/01/28
    텍스트 출력 함수
  9. 2008/01/28
    CFont 클래스를 이용하여 새로운 글꼴을 생성하는 방법들
  10. 2008/01/28
    OnMouseMove함수에서 마우스 버튼 눌려졌을 때 설정
  11. 2008/01/28
    SetROP2함수
  12. 2008/01/28
    4대 클레스 실행 순서
  13. 2008/01/28
    타 클래스 접근 방식
  14. 2008/01/28
    WM_SIZE
  15. 2008/01/28
    OnDraw 호출시점
  16. 2008/01/28
    MFC 화면 크기 얻기
  17. 2008/01/28
    View 클래스의 OnInitialUpdate함수
  18. 2008/01/28
    WM_TIMER 사용법
  19. 2008/01/28
    SelectObject 함수 사용시 주의점(내장 오프젝트 내용 포함)
  20. 2008/01/28
    디바이스 컨텍스트 클래스 관련
  21. 2008/01/28
    DC에 저장되는 그래픽 옵션의 범주
  22. 2008/01/22
    MFC 도큐먼트 클래스에서의 저장 방법
  23. 2008/01/22
    MFC 화면 업데이트 함수 호출
  24. 2008/01/09
    AppWizard에서 프로젝트 생성시...
  25. 2008/01/09
    MessageBox Function
Check Box : BOOL
Radio Button : int
Combo Box : CString
List Box : CString
Edit : CString, int, UINT, long, DWORD, float, double, BYTE, short, BOOL, COleDateTime, COleCurrency

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

컨트롤과 연결가능한 변수 종류  (0) 2008/02/10
대화상자 생성 및 이벤트 처리  (0) 2008/02/02
OnInitDialog함수  (0) 2008/02/02
대화상자 주요 속성  (0) 2008/02/02
LOGFONT 기본 설정  (0) 2008/01/28
텍스트 설정 함수  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
대화상자 화면에 출력하기
  1. 대화상자 리소스를 이용하여 대화상자의 모양을 디자인 한다.
  2. 이 리소스와 연결되는 CDialog 파생 클래스를 만든다.
  3. CDialog 클래스의 멤버 함수인 DoModal을 실행한다.
  예제
    void CMyClass::OnDialog()
    {
      CMyDlg dlg;
      dlg.DoModal();
    }

사용자가 OK버튼을 눌렀을 경우 이벤트 처리
  예제
    void CMyClass::OnDialog()
    {
      CMyDlg dlg;
      if(dlg.DoModal() == IDOK)
      {
        // OK버튼이 눌렸을 때만 실행되는 부분
      }
    }

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

컨트롤과 연결가능한 변수 종류  (0) 2008/02/10
대화상자 생성 및 이벤트 처리  (0) 2008/02/02
OnInitDialog함수  (0) 2008/02/02
대화상자 주요 속성  (0) 2008/02/02
LOGFONT 기본 설정  (0) 2008/01/28
텍스트 설정 함수  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
OnInitDialog함수
  대화상자가 화면에 처음 나타날 때 호출되는 함수

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

컨트롤과 연결가능한 변수 종류  (0) 2008/02/10
대화상자 생성 및 이벤트 처리  (0) 2008/02/02
OnInitDialog함수  (0) 2008/02/02
대화상자 주요 속성  (0) 2008/02/02
LOGFONT 기본 설정  (0) 2008/01/28
텍스트 설정 함수  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
대화상자 주요 속성

글꼴
  Font
    대화상자에서 사용될 글꼴을 지정합니다.
기타
  ID
    소스 코드에서 대화상자 리소스를 구별하기 위해 사용하는 ID를 지정합니다.
  Menu
    대화상자에 메뉴를 만들 수 있습니다.
모양
  Border
    대화상자의 경계선 모양을 설정합니다
  Caption
    타이틀 바에 출력될 텍스트를 설정합니다.
  Maximize Box
    타이틀 바에 최대화 버튼을 설정합니다.
  Mimimize Box
    타이틀 바에 최소화 버튼을 설정합니다.
  Title Bar
    True면 타이틀 바가 나타납니다
위치
  Center
    True면 화면의 대화상자가 중앙에 나타납니다.
  X Pos, Y Pos
    Center가 False로 설정된 경우, 대화상자가 나타날 좌표를 지정합니다.

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

대화상자 생성 및 이벤트 처리  (0) 2008/02/02
OnInitDialog함수  (0) 2008/02/02
대화상자 주요 속성  (0) 2008/02/02
LOGFONT 기본 설정  (0) 2008/01/28
텍스트 설정 함수  (0) 2008/01/28
텍스트 출력 함수  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0

워드프로그램에서 종종 어떤 글꼴인지 몰라 마음에 드는 글꼴을 찾는데 시간을 허비하게 된다.

이 녀석은 컴퓨터에 저장된 폰트로 예제 문장을 변경하는 프로그램이다.

내가 워드 프로그램 쓰면서 보조로 사용하면 좋을 듯...

'딸기 자료실 > 개인 파일' 카테고리의 다른 글

mp3파일 변환 프로그램  (0) 2008/07/14
sql문 실행  (0) 2008/07/02
회원가입 폼  (0) 2008/07/02
2007년 7월 4일자 최종 한국 변경 우편번호 MySQL  (0) 2008/06/30
폰트 확인 프로그램  (1) 2008/01/28
TRACKBACK 0 AND COMMENT 1
 LOGFONT m_font_setup;

 m_font_setup.lfHeight = 100;
 m_font_setup.lfWidth = 0;
 m_font_setup.lfEscapement = 0;
 m_font_setup.lfOrientation = 0;
 m_font_setup.lfWeight = FW_NORMAL;
 m_font_setup.lfItalic = FALSE;
 m_font_setup.lfUnderline = FALSE;
 m_font_setup.lfStrikeOut = FALSE;
 m_font_setup.lfCharSet = DEFAULT_CHARSET;
 m_font_setup.lfOutPrecision = OUT_CHARACTER_PRECIS;
 m_font_setup.lfClipPrecision = CLIP_CHARACTER_PRECIS;
 m_font_setup.lfQuality = DEFAULT_QUALITY;
 m_font_setup.lfPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE;
 strcpy(m_font_setup.lfFaceName, _T("Times New Romans"));

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

OnInitDialog함수  (0) 2008/02/02
대화상자 주요 속성  (0) 2008/02/02
LOGFONT 기본 설정  (0) 2008/01/28
텍스트 설정 함수  (0) 2008/01/28
텍스트 출력 함수  (0) 2008/01/28
CFont 클래스를 이용하여 새로운 글꼴을 생성하는 방법들  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
CDC::SetTextColor
  텍스트의 색깔을 지정

CDC::SetBkMode
  텍스트의 배경 설정
    TRANSPARENT
      텍스트의 배경을 투명하게
    OPAQUE
      SetBkColor함수에 의해 지정된 색으로 지정
        SetBkColor
          텍스트의 배경 설정
TRACKBACK 0 AND COMMENT 0

CDC::TextOut
  좌표를 기준으로 문자열 출력
  SetTextAlign()을 통하여 설정
    가로기준
      TA_LEFT, TA_CENTER, TA_RIGHT
    세로기준
      TA_TOP, TA_BASELINE, TA_BOTTOM

CDC::DrawText
  지정된 사각형 안에 문자열 출력
  좌우정렬
    DT_LEFT, DT_CENTER, DT_RIGHT
  상하정렬
    DT_TOP, DT_VCENTER, DT_BOTTOM
      DT_VCENTER는 출력문자열이 한줄로 되어야 하고 DT_SINGLELINE속성이 같이 주어져야 한다.

TRACKBACK 0 AND COMMENT 0
1. CFont::CreatePointFont
  글꼴의 크기와 이름을 매개변수로 논리적인 글꼴을 생성
  코드
    CFont font;
    font.CreatePointFont(100, _T("Time New Romans:));

2. CFont::CreateFontIndirect
  LOGFONT 구조체 변수를 설정하고 그 변수를 매개변수로 논리적인 글꼴을 생성
  코드
    LOGFONT log;
    log.lfHeight = 100;
    ...// 구조체 변수 설정
    CFont font;
    font.CreateFontIndirect(&log);

3. CFont::CreateFont
  LOGFONT를 이용하지 않고 멤버변수들을 직접 매개변수로 넘겨주어 논리적인 글꼴을 생성
  코드
    CFont font;
    font. CreateFont(100, ...// 매개변수 입력);
TRACKBACK 0 AND COMMENT 0

void View::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 if(nFlags & MK_LBUTTON)
 {
    // 여기에 코드를 넣으면 마우스 버튼이 눌린 동안 작동
 }
 
 CView::OnMouseMove(nFlags, point);
}

TRACKBACK 0 AND COMMENT 0

R2_BLACK : 0

R2_NOTMERGEPEN : ~P & D

R2_MASKNOTPEN : R & ~D

R2_NOTCOPYPEN : ~D

R2_MASKPENNOT : P ^ D

R2_NOT : ~(P & D)

R2_XORPEN : P^D

R2_NOTMASKPEN : ~(P ^ D)

R2_MASKPEN : P & D

R2_NOTXORPEN : ~(P | ^ D)

R2_NOP : D

R2_MERGENOTPEN : ~ P | D

R2_COPYPEN : P

R2_MERGEPENNOT : P | ~ D

R2_MERGEPEN : P | D

R2_WHITE : 1

~ : NOT
& : AND
| : OR
^ : XOR

TRACKBACK 0 AND COMMENT 0
App -> Doc -> MainFrame -> View

헤드 파일을 쓸 때도 위 순서와 같아야 한다.

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

OnMouseMove함수에서 마우스 버튼 눌려졌을 때 설정  (0) 2008/01/28
SetROP2함수  (0) 2008/01/28
4대 클레스 실행 순서  (0) 2008/01/28
타 클래스 접근 방식  (0) 2008/01/28
WM_SIZE  (0) 2008/01/28
OnDraw 호출시점  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
타 클래스에서 App에 접근하기 위해서는 AfxGetApp()

타 클래스에서 MainFrame에 접근하기 위해서 AfxGetMainWnd()

MainFrame에서 Doc로 접근할 때  GetActiveDocument()

MainFrame에서 View로 접근할 때 GetActiveView()

View에서 Doc로 접근할 때 GetDocument()

App에서 View 또는 Doc 접근할 때 MainFrame을 통해서 접근한다

View 또는 Doc에서 App를 접근할 때 MainFrame을 통해서 접근한다.

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

SetROP2함수  (0) 2008/01/28
4대 클레스 실행 순서  (0) 2008/01/28
타 클래스 접근 방식  (0) 2008/01/28
WM_SIZE  (0) 2008/01/28
OnDraw 호출시점  (0) 2008/01/28
MFC 화면 크기 얻기  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0

! 호출되는 시점
  @ 창처음뜰때
  @ 창크기조절할때
  @ WM_SIZE가 ONDRAW보다 먼저 호출
! 호출시 스스로 영역을 잡는다. 창 오른쪽 모서리의 좌표는 (cx, cy)

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

4대 클레스 실행 순서  (0) 2008/01/28
타 클래스 접근 방식  (0) 2008/01/28
WM_SIZE  (0) 2008/01/28
OnDraw 호출시점  (0) 2008/01/28
MFC 화면 크기 얻기  (0) 2008/01/28
View 클래스의 OnInitialUpdate함수  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
  • 창처음뜰때
  • 창크기조절
  • 무효화영역(다른 프로그램이 위에 있을 때)
  • Invalidate()함수가 사용될 때 : 기존의 내용을 지우고 다시 호출 할 수 있다.

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

타 클래스 접근 방식  (0) 2008/01/28
WM_SIZE  (0) 2008/01/28
OnDraw 호출시점  (0) 2008/01/28
MFC 화면 크기 얻기  (0) 2008/01/28
View 클래스의 OnInitialUpdate함수  (0) 2008/01/28
WM_TIMER 사용법  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
CRect rect;
GetClientRect(rect);

rect변수에 화면의 크기 저장

'딸기 공부방 > MFC공부방' 카테고리의 다른 글

WM_SIZE  (0) 2008/01/28
OnDraw 호출시점  (0) 2008/01/28
MFC 화면 크기 얻기  (0) 2008/01/28
View 클래스의 OnInitialUpdate함수  (0) 2008/01/28
WM_TIMER 사용법  (0) 2008/01/28
SelectObject 함수 사용시 주의점(내장 오프젝트 내용 포함)  (0) 2008/01/28
TRACKBACK 0 AND COMMENT 0
  뷰 윈도우가 최초로 화면에 나타나는 순간 호출되는 함수
TRACKBACK 0 AND COMMENT 0
설정부분

SetTimer(0, 1000, NULL);
SetTimer(1, 800, NULL);
// 첫번째 인자는 ID
// 두번째 인자는 호출 간격 1000 = 1초
// 세번째 인자는 호출 함수 명(NULL지정시 OnTimer 호출)

구현부분

void View::OnTimer(UINT nIDEvent)
{
  if(nIDEvent == 0)
  {
    // 타이머 아이디가 0일 때
  }
  else if(nIDEvent == 1)
  {
     // 타이머 아이디가 1일 때
  }
}

중단부분
KillTimer(0);
// 인자는 ID
TRACKBACK 0 AND COMMENT 0
// 코드 1
CPen pen;
pen.CreatPen(PS_SOLID, 3, RGB(255, 0, 0));

// 코드 2
CClientDC dc(this);
CPen *poldpen = dc.SelectObject(&pen); // 원래 들어있던 GDI 오브젝트 반환
dc.Rectangle(10, 10, 100, 100);
dc.SelectObject(&poldpen); // 원래 들어있던 GDI 설정

위 코드처럼 하면 지역변수가 사라져도 프로그램은 문제가 없다.

단 내장 오브젝트는 위 과정을 생략할 수 있다.

예제코드
// 코드3
CClientDC dc;
dc.SelectStockObject(WHITE_PEN);
dc.Rectangle(10, 10, 100, 100)

내장 오브젝트 종류


  BLACK_PEN
  WHITE_PEN
  NULL_PEN
브러시
  BLACK_BRUSH
  WHITE_BRUSH
  DKGRAY_BRUSH
  GRAY_BRUSH
  HOLLOW_BRUSH
  LTGRAY_BRUSH
  NULL_BRUSH
글꼴
  ANSI_FIXED_FONT
  ANSI_VAR_FONT
  DEVICE_DEFAULT_FONT
  OEM_FIXED_FONT
  SYSTEM_FONT
TRACKBACK 0 AND COMMENT 0
CDC클래스 이용

CDC *pDC = GetDC();
pDC->Rectangle(10, 10, 100, 100);
ReleaseDC(pDC);

CClientDC클래스 이용

CClientDC dc(this);
dc.Rectangle(10, 10, 100, 100);

위 아래 코드 둘다 같은 내용임.
TRACKBACK 0 AND COMMENT 0

선그리기 옵션
  선이나 영역의 경계선을 그릴 때 사용되며, 선의 두께, 컬러, 선의 패턴 등이 설정됩니다.

영역의 내부를 채우는 옵션
  영역의 내부를 채울 때 사용되며, 채울 색, 패턴 등이 설정됩니다.

글꼴 옵션
  문자를 출력할 때 사용되며, 글꼴의 모양, 크기 등이 설정됩니다.

비트맵 옵션
  비트맵을 설정합니다

팔레트 옵션
  화면에 출력될 수 있는 컬러 수에 제한이 있을 때, 실제로 출력될 컬러를 설정합니다.

영역 옵션
  임의 모양의 다각형을 그리는 옵션이 설정됩니다.

TRACKBACK 0 AND COMMENT 0

ar << 변수명 => 저장

ar >> 변수명 => 불러오기

여러개의 변수를 저장할 경우 저장하는 순서와 불러오는 순서를 같게 하자.

TRACKBACK 0 AND COMMENT 0

뷰에서 화면 업데이트를 할경우 Invalidate() 함수 호출

도큐먼트에서 화면 업데이트를 할 경우 UpdateAllView(NULL) 함수 호출

TRACKBACK 0 AND COMMENT 0
AppWizard에서 프로젝트 생성시 1단계에서 'Document / View architecture support?'옵션을 선택하지 않았을 경우

클래스 위자드에서 CMainFrame에 WM_CREATE를 추가한다

그리고 코드를 아래와 같이 교체한다.

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  return -1;
 
 // TODO: Add your specialized creation code here
 if(!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this,
  AFX_IDW_PANE_FIRST, NULL))
 {
  TRACE0("Failed to create view window\n");
  return -1;
 }
 
 return 0;
}
TRACKBACK 0 AND COMMENT 0

MessageBox Function


The MessageBox function creates, displays, and ope