- 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)
드럼치는 프로그래머
분할 윈도우(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와 함께 쓸 수 없..
프로젝트를 VS2002 에서 VS2005로 바꾸는데 있어 프로젝트를 마이그레이션 한 후 빌드를 해보니 무수한 경고 메세지가 쏟아져 나왔다. 대부분의 에러는 함수가 안전하지 않다고 다른 함수로 변경하라는 메세지 이다. 이 메세지를 무시하려면 다음을 입력해 주면되지만... #pragma warning(disable:4996) 아무래도 경고 메세지를 없애는게 좋을듯 싶어 관련 정보를 찾아 보았다. Visual Studio 2005로 버전업 하면서 몇몇 CRT 함수들이 "_s" 라는 말꼬리를 붙여 추가되었다. 문자열 버퍼를 사용하는 CRT 함수들이 예전에는 char형 포인터만 넘겨주면 되었는데 2005에서는 대상버퍼의 크기를 함께 넘겨주어야 한다. 좀더 안전성을 추구하는 모양이다. 그래서 "_s" 라는 말꼬리가..
// 기존 이름 저장 char* temp = (char*)AfxGetApp()->m_pszAppName; // 새로운 타이틀 설정 char* title = "내 어플리케이션"; // 새로운 타이틀 적용 AfxGetApp()->m_pszAppName = title; // 적용된 메시지 박스 AfxMessageBox("까마귀"); // 타이틀 복원 AfxGetApp()->m_pszAppName = temp; // 복원된 메시지 박스. AfxMessageBox("까마귀"); [출처] AfxMessageBox 타이틀 변경하기~|작성자 쿠리스
컨트롤 크기 및 위치, 표시Level를 변경할 때 사용하는 함수. ex) GetDlgItem(IDC_EDIT1)->SetWindowPos(NULL,200,300,600,600,SWP_NOMOVE); BOOL SetWindowPos( const CWnd* pWndInsertAfter, // 핸들값 창이 변경되고서 표시 Level 지정 int x, // 컨트롤의 x 좌표 int y, // 컨트롤의 y 좌표 int cx, // 컨트롤의 가로 크기 int cy, // 컨트롤의 세로 크키 UINT nFlags // 표시할 option 지정 ); hWndInsertAfter 상수 값 설명 &wndNoTopMost -2 최상위 Window의 바로 다음 위치로 이동 &wndTop -1 바로 다음 상위로 이동 &wndB..