본문 바로가기

프로그래밍/MFC

[MFC] 포인터 해제? C++로 코드를 작성하다 보면 가끔씩... 신나게 * , new를 남발하다 보면, 출력창에 나타나는 그단어. Detected momory leaks! 친절하게 느낌표까지 찍어준다. 그만큼 놀랐니? 응? 다시 한번 기억하자. pointer 는 pointer 일 뿐이다. 값이 아니다. 쟤는 단지 '영희야, 철수가 먹을것(메모리)를 가지고 있다는데 어디있는지 아니?' '철수 운동장(위치)에 있어요' 할 뿐이다. 그러니 어딜가든지 위치만 있다면 먹을것을 뺏어올 수(해제할 수) 있다. 이 고민을 한 이유가 한창 쓰고있다가 반환값인데, 어떻게 해제하지? 해제하고 반환하면 아무것도 없을텐데... 그렇다. 이때까지 난 포인터를 '값' 으로 인지하고 있었다. 다시한번 기억하자. pointer는 pointer 일 뿐이다. 더보기
[MFC Dialog] PreTranslateMessage 특정 컨트롤러나 Dialog에 이벤트를 주고 싶다. 하면 그냥 이벤트 등록하면 간단한 일이다. 하지만 특정 부분에 대해서, 세세하게 이벤트를 달아주고 싶다면, 이 방법을 써보자. PreTranslateMessage MSDN - Override this function to filter window messages before they are dispatched to the Windows functions TranslateMessage and DispatchMessage The default implementation performs accelerator-key translation, so you must call the CWinApp::PreTranslateMessage member function in.. 더보기
[MFC] SendMessage 클래스간 데이터 전달을 하는 방법이 무엇이 있을까. 1. 전역변수 2. 헤더 include 후 변수 접근 3. SendMessage SendMessage를 이용하면 클래스간 데이터 전달이 용이함을 알고, 사용해보았다(몇번의 삽질과 함께...) LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 ) throw(); static LRESULT SendMessage( HWND hWnd, UINT message,// 메시지 이름 WPARAM wParam,// 정수형 포인터 전달인자 LPARAM lParam// 실수형 포인터 전달인자 ) throw(); 주로 static을 쓰게 될텐데... 선언해주어야 하는 파트는 3파트. 1. 메시지 .. 더보기
[MFC Dialog] OnKeyDown message afx_msg void OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags ); nCharSpecifies the virtual key code of the given key. For a list of of standard virtual key codes, see Winuser.h nRepCntRepeat count (the number of times the keystroke is repeated as a result of the user holding down the key). nFlagsSpecifies the scan code, key-transition code, previous key state, and context code, as shown in the .. 더보기
[MFC Dialog] TreeCtrl에 더블클릭 이벤트 주기 ON_NOTIFY 다이얼로그(대화식 상자)에 이벤트를 주는 방법은 참 쉽다. (' ' 요런식.. 하지만 다르게 해보면 어떨까... 그래서 어떻게 하면 컨트롤에 이벤트를 줄 수 있을까.. 하면서 찾은것이 MESSAGE_MAP에 NOTIFY 메시지를 등록하는 것. ON_NOTIFY( wwNotifyCode, id, memberFxn) id가 바로 해당 controller wNotifyCodeThe code for the notification message to be handled, such as LVN_KEYDOWN. idThe child identifier of the control for which the notification is sent. memberFxnThe member function to be called .. 더보기
[MFC Dialog 메신져] TreeCtrl 탐색 이제서야 포스팅 할 생각을 하다니... 오늘 한 일 1. SERVER는 server에 접속한 client들의 상태를 기록한다. 2. server에 접속한 client의 수가 2이상일때(적어도 누군가의 친구가 있을때) 서버는 2번째 접속한 사용자와 기존 접속되어있는 사용자의 관계를 확인한다. 만약, 둘 사이가 친구라면 기존 접속한 client의 친구 목록에 후에 접속한 client의 id를 online으로 표시한다. 만약, 둘 사이가 친구가 아니라면 아무일도 일어나지 않는다. 그렇다면 TreeCtrl 을 탐색하는 기능이 필요하다(client의 사용자 명을 저장하지 않았다. 여기서 잠깐! - 사용자 명을 저장해놓는다면? 1) 사용자 명을 저장해놓는 변수가 있고, 그 변수를 treeCtrl와 연결해 놓고, u.. 더보기