본문 바로가기

SHChangeNotifyRegister 사용에 대해 폴더의 이름 변경을 알기위해 ::SHChangeNotifyRegister() 함수를 사용하려 한다. 이 함수는 지정 이벤트가 일어날 경우 보내질 메시지와 메시지를 받을 핸들을 받는다. ULONG SHChangeNotifyRegister( HWND hwnd, int fSources, LONG fEvents, UINT wMsg, int cEntries, const SHChangeNotifyEntry *pshcne ); MSDN에는 이 함수와 관련 함수들에 대해 설명이 부족하다(내가 못 찾는 건가!). 일단 이벤트가 발생해서 윈도우로 메시지가 전달됐다고 하자. 관련 정보는 어떻게 얻을 수 있는건가? 메시지의 WPARAM, LPARAM 값은 어떻게 사용해야 하나? 관련 정보가 MSDN에 없다; 구글링으로 찾아본.. 더보기
[버그] 작업표시줄에서 버튼 이미지 표시 안됨(XP x32) - fixed XP x32 시스템의 작업표시줄에 밴드 사용시 버튼의 이미지가 나오지 않는다. 같은 시스템의 윈도우 탐색기와 IE6에서는 나온다. 밑에 그림처럼 빨간 박스안에 그려져야할 탐색기 이미지가 없는 것을 확인할 수 있다. 수정됨 Visual Style 관련 문제였다. MSDN의 Enabling Visual Styles에서 찾을 수 있다. 비주얼 스타일 적용을 위해 manifest를 추가함으로서 해결됐다. 더보기
IShellView 페인팅 문제 Sod Explorer 에서는 보이지 않던 문제가 발생했다. 탐색기창이 맨 처음 보여진 후, 숨겼다가 다시 보여질 때 포커스가 리스트뷰(파일뷰)에 있다면 스샷과 같은 현상이 나타난다. 키보드 포커스를 가지고 있기 때문에 커서키로 움직이면 관련영역들이 그려지기 시작한다. 포커스가 트리뷰에 있는 상태로 보여지게되면 이런 현상은 없다. ::ShowWindow(, SW_SHOW) 후에 ::InvalidateRect()를 호출 해 일단 해결해 놨지만, 왜 그런지 이유가 궁금하다. 찝찝한 이 기분. 업데이트: 2010/03/04 InvalidateRect() 호출로 파일뷰가(리스트뷰 컨트롤) 완벽하게 다시 그려지지 않았다. 스샷에서 파일뷰부분에 스크롤바가 안보이는 것을 확인 할 수 있다. 게다가 위쪽 빨간 박스부분.. 더보기