- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록API/MFC (63)
드럼치는 프로그래머
CMenu:: TrackPopupMenu() BOOL TrackPopupMenu ( UINT nFlags, //메뉴 윈도우의 위치, 에니메이션효과 등 동작특성을 결정 int x, int y, //메뉴윈도우를 출력할 기준 좌표 **반드시 스크린 기준이다. CWnd* pWnd, // WM_COMMAND 메시지를 전송할 윈도우 객체의 주소. LPCRECT lpRect = 0 //이값은 현재 사용하지않음. ); nFlags : //메뉴가 나타날 위치의 플래그값 TPM_CENTERALIGN 지정한 위치의 중앙에 오게한다. TPM_LEFTALIGN 지정한 위치의 좌측 정렬 TPM_RIGHTALIGN 지정한 위치의 오른족 정렬 TPM_BOTTOMALIGN 지정한 위치의 바닥에 정렬. TPM_TOPALIGN 지정한 위..
(이 클래스의 출처는 http://cafe.naver.com/windev 입니다...) 더블버퍼링을 지원하는 CBufferDC 클래스입니다. 사용 예제를 보여드리겠습니다. OnPaint 메서드 CBufferDC dc(this); CRect Rect; GetClientRect(&Rect); dc.FillSolidRect(&Rect, RGB(192, 0, 0)); Rect -= CRect(7, 7, 7, 7); dc.SelectStockObject(NULL_PEN); dc.RoundRect(&Rect, CPoint(21, 21)); dc.SetBkMode(TRANSPARENT); dc.TextOut(30, 30, _T("Test string!")); OnEraseBkgnd 메서드 return TRUE; 더블..
우리가 사용하는 윈도우 창은 WM_PAINT 메세지가 발동될 때 한번 지워졌다가 다시 그려지게 됩니다. 그런데 이렇게 되면 문제는, WM_PAINT 가 너무 많이 발생할 때 너무 많이 깜빡인다는 점입니다. 이럴 때 해결 방법은 대표적으로 두가지가 있는데, 이 두가지를 전부 병행할경우 거의 완벽한 깜빡임 제거가 됩니다. WM_ERASEBKGND 메세지를 등록해주신 다음 return 문을 return TRUE; 로 바꿔주세요 그렇게 하면, 지워지는 과정을 없애버리고 지울 수 있게 됩니다. [출처] 윈도우 깜빡임을 최소화 하기 - 1 (WM_ERASEBKGND)|작성자 메모리얼
부모가 자식의 헤더를 포함하고, 자식이 부모의 헤더를 포함시키도록 구성했을때, 중첩 클래스(순환 참조)가 되버리는 바람에 다음과 같은 에러가 발생한다. fatal error C1014: 포함 파일이 너무 많습니다 : 수준 = 1024 /* error */ error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다. /* error */ error C4430: 형식 지정자가 없습니다. int로 가정합니다. 에러가 발생하는 헤더 중첩, 순환 참조 클래스 #include "Child.h" class CParent { CChild* m_pChild; }; #include "Parent.h" class CChild { CParent* m_pParent; }; 이런 경우 #ifndef #define ..
1년이나 이일을 하면서 늘 보아왔지만 오늘에서야 직접 찾아보고 뜻을 하게되었다..(허접한 Yaron.. 그러고도 프로그래머라고...) 먼저 PARAM은 파라미터(Parameter)의 줄임말이다.(이것은 대충 감으로 잡았으리라 본다) 그렇다면 앞에 붙은 W, L은 무엇이란 말인가?? 먼저 W는 WORD의 약자이다. 즉 WPARAM이란 WORD PARAMETER라는 결과를 얻을수 있다... 다음으로 L은 LONG의 약자이다. 즉 LPARAM이란 LONG PARAMETER라는 결과도 얻을수 있을 것이다. 일반적으로 사용을 할때는 WPARAM으로는 핸들 or 정수를 받아들일때 사용한다. 필자는 DWORD형을 받아들이는 것을 보고 이 글을 쓰게되었다.(저놈은 먼데 값을 마음대로 받아들이나 라는 허접한 생각에.....
MFC에서는 여러가지의 자료형을 쓴다... 전혀 생소한녀석들로 말이지;;; 좀 보고 숙지.....(말만... 걍 외워야지 뭐 ㅠㅠ)하자!!! LPSTR : A 32-bit pointer to a character string 이 데이터형 같은 경우는 예전에 사용하던 방식으로 선언하면 와 같은 경우이다. 유니코드를 지원하지 않기 때문에 각각의 문자는 1바이트를 가진다. LPCSTR : A 32-bit pointer to a constant character string 이 데이터형 같은 경우는 예전에 사용하던 방식으로 선언하면 와 같은 경우이다. 이것 역시 유니코드를 지원하지 않기 때문에 각각의 문자는 1바이트를 가집니다. LPTSTR : A 32-bit pointer to a character strin..
뭐 윈도우에 핸들을 리턴하는 함수이고 GetSafeHwnd()는 윈도우에 핸들을 리턴하신단다;;; 윈도우가 존재하지 않으면 NULL;;;; if(dlg.GetSafeHwnd() == NULL ) dlg.Create( IDD_DIALOG1 ); dlg.ShowWindow(SW_SHOW); // 소스의 해석을 보면 간단하다.... 윈도우가 존재하지 않으면 다이얼로그를 생성하고 윈도우를 보여준다; 뭐냐;;; [출처] MFC GetSafeHwnd()|작성자 반만년돼지
CMap은 사전이라고 생각하시면 됩니다. CArray는 배열이죠. 그래서 첨자에 의해서, 즉 순서를 지정해서 값을 저장하고 읽습니다. 하지만 CMap은 순서가 아니라 키에 의해서 값을 저장하고 읽게 됩니다. 예를 들어서, 영한 사전을 생각해보세요. boy라는 영어 단어와 소년이라는 해석은 쌍으로 존재할 때 의미가 있습니다. 만약 배열을 쓴다고 하면, 영어 단어 배열과 한글 해석 배열, 이렇게 두개가 필요합니다. 그리고 어떤 영어 단어의 해석을 보고 싶다면 영어 단어 배열에서의 해당 단어 위치를 구하고, 한글 해석 배열의 해당 위치의 해석을 꺼내야 합니다. 하지만 CMap을 사용하면, 키와 값을 한꺼번에 저장하고 읽을 수 있습니다. boy를 키로 저장하면서 동시에 소년이라는 해석도 값으로써 저장할 수 있죠..
SDI기반에서 정적 분할 윈도우를 만드는 방법에 대한 간단한 예제입니다. 정적 분할 윈도우를 만드는 방법은 기본적으로 동적 분할 윈도우와 비슷합니다. ◎ 새로운 View 생성 정적 분할 윈도우는 하나의 Document에 연결된 서로 다른 뷰를 사용하기 위해 사용하는 것입니다. 다시 말해서 같은 데이터를 다른 방식으로 보여주기 위함이라고 볼 수 있겠지요. 그래서 다른 View를 하나 더 생성해야 합니다. 필요에 따라 CView나 FormView 같은 클래스의 상속을 받 아서 생성하면 되겠죠. 저는 FormView에서 상속을 받아 만들었습니다. FormView의 스타일은 Child이어야 합니다. View를 생성한 후에는 MainFrame 클래스에 Doc의 헤더파일과 생성된 뷰의 헤더파일을 인클루드 합니다. ..
SDI기반에서 동적 분할 윈도우를 만드는 방법에 대한 간단한 예제입니다. 동적 분할 윈도우를 만드는 과정은 아주 간단합니다. MFC 프로그램에서 윈도우의 형태와 메뉴바 등과 관련된 부분을 담당하는 부분은 CMainFrame입니다. 분할 윈도우도 CMainFrame에서 만들어줍니다. 아래와 같이 두 과정을 거치면 쉽게 만들 수 있습니다. ◎ CSplitterWnd 클래스의 인스턴스 선언 처음해야 될 일은 분할 윈도우가 가지는 여러가지 기능을 담당하는 CSplitterWnd 클래스의 인스턴스를 선언합니다. CMainFrame의 멤버 변수로 아래와 같이 선언합니다. CSplitterWnd m_wndSplitter; ◎ OnCreateClient 함수의 재정의 프로그램 상에서 분할 윈도우의 위치는 프레임 윈도우..