- 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 |
- 재능이의 돈버는 일기
- 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
- 무의식이 의식을 지배한다
목록★─Programing (620)
드럼치는 프로그래머
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 함수의 재정의 프로그램 상에서 분할 윈도우의 위치는 프레임 윈도우..
분할 윈도우(Splitter Window)는 하나의 프레임 윈도우를 두 개 이상의 윈도우로 나누어 주는 기능을 하는 윈도우 입니다. 가장 대표적인 예로 아래 그림의 윈도우 탐색기를 들 수 있으며 같은 데이터를 보여주는데 보여주는 위치나 보여주는 형태가 다른 경우에 많이 사용합니다. 사용자는 분할 윈도우를 이용하여 원하는 만큼의 뷰 영역을 설정 할 수 있고, 각각의 뷰 영역에는 뷰 윈도우 뿐만 아니라 여러가지 일반 윈도우도 올라 갈 수 있습니다. 분할 윈도우에는 다음과 같이 두 가지 종류가 있습니다. ◎ 동적 분할 윈도우 - 프로그램 실행 중 윈도우를 하나로 합치거나 나눌 수 있으며 스크롤바 끝 부분에 분할바가 있습니다. 분할바를 윈도우의 한 쪽 끝까지 움직이면 나누어져있던 윈도우가 합쳐지고 끝 쪽에 있는..
PostQuitMessage가 WM_QUIT를 Post하는 함수라고 했습니다... WM_QUIT의 의미는 무엇입니까?... 메시지루프를 종료하게 해주지요... GetMessage에서 WM_QUIT를 꺼내게 되면, 0을 반환하니, 그렇다면, while( GetMesasge(...;)) { } 하게 될때, WM_QUIT를 꺼내게 된다면, 조건식의 값이 0이므로 거짓으로 평가되어 루프를 탈출하게 되지요. 그리고 바로 Winmain함수의 return msg.wParam; 문장을 만나게 되고, WinMain함수를 종료합니다. 왜 PostQuitMessage 를 바로 넣지 말라 하는 이유는, 종료 처리를 못하기 때문입니다.... WM_DESTROY메시지에 통상적으로 종료처리를 넣는데,... PostQuitMessa..
윈도우를 파괴한다. 이 함수는 WM_DESTROY와 WM_NCDESTROY 윈도우에 보내 비활성화 하고, 키보드 포커스를 제거하고 윈도우 메뉴를 파괴한다 그리고 쓰레드의 메시지 큐를 비우고, 타이머를 제거한다. 이 입력한 윈도우가 부모 또는 소유 윈도우라면 관련된 차일드 또는 소유된 윈도우를 자동적으로 파괴한다. 이 함수는 차일드 또는 소유된 윈도우를 먼저 파괴하고, 그러고나서 부모와 소유윈도우를 파괴한다. 그리고 모델리스 다이얼로그도 파괴한다.(CreateDialog로 생성된) 즉 이 함수는 같은 프로세스내의 윈도우만 파괴할 수 있다. 1.함수원형 BOOL DestroyWindow( HWND hWnd // handle to window to destroy ); 2.파라메타 hWnd : 윈도우 핸들 3...
callback 함수는 아마 WinAPI 프로그래밍할 때 많이 보셨을겁니다. callback이란 무엇일까요? 해석해보면 "불러-다시" 뭐 이렇게 되나요...ㅋ 찾아보니 정의는 이렇군요. 호출될 함수를 알려 주어 다른 프로그램 또는 다른 모듈에서 함수를 호출하게 하는 방법. 일반적으로 운영 체계(OS)가 호출할 애플리케이션의 함수를 지정해 특정한 사건 또는 메시지가 발생했을 때 호출되도록 지정할 수 있다. 이런 함수를 콜백 함수라고 한다. 그냥 함수 호출과 callback 함수 호출의 차이점은 "제어권"에 있습니다. 일반적으로 함수 호출은 조건 1이면 1번 함수를 불러서 처리, 2면 2번 함수 불러서 처리... 이런 식입니다. 즉, 우리가 어떤 처리가 필요할 때 함수에게 그 작업을 맡기는 것이죠. 그런데 ..
먼저 원형을 봅시다. postmessage의 원형 LRESULT PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); sendmessage 의 원형 LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 보시다시피 인자값(파라미터)은 같습니다. 차이점은 뭘까요. PostMessage() 함수는 hWnd 윈도우의 메세지 큐에 바로리턴하므로 메시지를 붙인 후 즉시 다른작업을 할 수 있지만 큐에 대기하고 있는 다른 메세지가 있으면 뒤에 붙인 메세지는 곧바로 처리되지않습니다. 그래서,지금당장처리해야할 필요가 없을때는 PostMessage() 를 씁니다. 왜냐하면 언제 처리될지 정..
LRESULT SendMessage( HWND hWnd, // 메세지를 보낼 윈도우 핸들 UINT Msg, // 보낼 메세지 WPARAM wParam, // 메세지의 wParam LPARAM lParam // 메세지의 lParam ); SendMessage는 메세지 큐에 넣지 않고 바로 윈도우프로시져(WndProc)가 처리할수 있게 메세지를 보내는 함수이다. 메시지가 완전히 처리되기 전에는 리턴되지 않고, 블록된다. 참고 : PostMessage(), SendNotifyMessage() [출처] [MFC] SendMessage()|작성자 에스이오케이
[윈도우 스타일] CreateWindow 함수의 세번째 인자로 윈도우의 스타일을 지정할 수 있는데.. WinUser.h 라는 헤더파일을 보면 여러가지 종류가 정의도어 있다. 독자가 그 파일을 열어 봤더니 아래와 같은 종류들이 나열 되어 있었다. ------------------ WinUser.h 에서 윈도우 스타일 정의------------------------ /* * Window Styles */ #define WS_OVERLAPPED 0x00000000L //디폴트 윈도우 #define WS_POPUP 0x80000000L // 팝업 윈도우를 만든다. WS_CHILD와 함께 쓸수 없다. #define WS_CHILD 0x40000000L //차일드 윈도우를 만든다. WS_POPUP와 함께 쓸 수 없..