Please check first VisualUnitTest++

사용자 삽입 이미지


* history
- v0.20 ( 2007.11.17 )
Test, Failure에 더블클릭으로 소스위치로 바로가기( 정상작동 안하시는경우는 테스트프로젝트의 속성->C/C++->고급->전체경로사용 : 예(/FC)로 설정 )
절대경로로 되있는 소스파일명 표시할때 상대경로로 바꿔주기

- v0.11 ( 2007.11.16 )
종속성을 걸어서 하면 잘 되는데 그냥 link걸어서 하면 안되는 버그가 있어서 수정했습니다.

콘솔프로젝트에 연결하기 : http://parkpd.egloos.com/1668243

-------------------------------------------------------------------

유닛테스트는 쓰지도 않는 주제에 UnitTest++어떻게 생겼나 구경하다가 확-_- 만들어버렸습니다;;
src폴더에 넣고 MFC프로젝트 만들고 ../GuiRunner/GuiRunnerDlg.h ../Test.h파일 include하고
기본 dlg대신에  CGuiRunnerDlg dlg( UnitTest::Test::GetTestList() );
넣으시고 사용하시면 됩니다.

안에 샘플프로젝트도 있으니 기존 UnitTest++솔루션에 추가하시고 종속성만 걸고 사용하시면 됩니다.

소스외에 귀찮아하시는 분들을 위해 lib, dll, exe다 넣어두었습니다;

참고로 프로젝트 파일은 2005용만 있습니다.

'UnitTest' 카테고리의 다른 글

VisualUnitTest++ WinUnit지원예정  (5) 2008.01.22
VisualUnitTest++ 0.2 release  (7) 2008.01.15
VisualUnitTest++ 0.1 release  (27) 2008.01.04
VisualUnitTest++ 진행상황  (4) 2007.12.14
요즘 UnitTest++용 VisualStudio Addin개발중입니다.  (6) 2007.12.06

에에..시스템 이미지란..
내컴퓨터나 휴지통, 폴더 아이콘등 윈도우의 기본적인 이미지를 말한다.

에에... 대략 이런 프로그램을 만들때 필요하다.


왼쪽에 있는 폴더 창과 오른쪽의 파일리스트 창과는 살짝 차이가 있다.

일단 왼쪽의 폴더 창에서는
폴더의 열린 모양과 닫힌 모양이 필요하다

m_ImageList.Create( 16, 16, ILC_COLOR32, 0, 0 );
rTree.SetImageList( &m_ImageList, LVSIL_NORMAL );

TCHAR szTemp[MAX_PATH];
GetSystemDirectory( szTemp, MAX_PATH );

_tcscat_s( szTemp, MAX_PATH, _T( "\\Shell32.dll" ) );

HICON hIconSmall;
ExtractIconEx( szTemp, 3, NULL, &hIconSmall, 1 );
m_ImageList.Add( hIconSmall );

ExtractIconEx( szTemp, 4, NULL, &hIconSmall, 1 );
m_ImageList.Add( hIconSmall );


이런식으로 Shell32.dll의 이미지를 뽑아다 쓴다.
이미지 리스트를 Create할때 ILC_COLOR32가 아닌걸로 하면 알파가 제대로 안빠지므로 주의!

위에 보면 ExtractIconEx에 두번째 인자가 이미지 번호다
다른 번호를 넣으면 다양한 아이콘들을 가져다 쓸 수 있다.

그리고 오른쪽 파일창같은 경우는 이것과는 다른데
파일 확장자별로 연결되어 있는 아이콘을 가져다 써야 한다.
처음에 대략

HIMAGELIST hSystemImgListSmall, hSystemImgListLarge;
Shell_GetImageLists( &hSystemImgListLarge, &hSystemImgListSmall );
m_ImageListSmall.Attach( hSystemImgListSmall );
m_ImageListLarge.Attach( hSystemImgListLarge );

rListCtrl.SetImageList( &m_ImageListSmall, LVSIL_SMALL );
rListCtrl.SetImageList( &m_ImageListLarge, LVSIL_NORMAL );
이런식으로 해준뒤에

SHFILEINFO sfi;
SHGetFileInfo( rFilename.c_str(), 0, &sfi, sizeof(SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_DISPLAYNAME | SHGFI_ICON | SHGFI_TYPENAME );
하면 sfi.iIcon이 가져온 이미지 리스트의 아이콘 인덱스가 되겠다.

여기서 대략난감했던 부분이 파일리스트에서도 폴더 아이콘이 필요하다는 거였는데.

SHFILEINFO sfi;
SHGetFileInfo( (LPCTSTR)"Does not matter", FILE_ATTRIBUTE_DIRECTORY, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_USEFILEATTRIBUTES);
대략 이런식으로 가져올 수 있다.
혹시나 폴더 열린 아이콘이 필요하다면(아마 필요없겠지만) 알아서 이미지리스트를 합쳐서 쓰삼-_-;

devpia에 내용을 다 충족하는 내용들이 없어서 여기저기 뒤지고 삽질하고 고생했다.

참고로 vs2005에서는 (2003도 되는거 같다.)
처음에 MFC어플리케이션 만들때 익스플로러 스타일~ 을 체크해주면 위에처럼 알아서 스플리트 윈도우로 왼쪽엔 트리뷰 오른쪽엔 리트스컨트롤뷰로 붙여주니까 쓸데없는 삽질은 하지 말쟈-_-;

그나저나 오랜만에 어플리케이션 프로그래밍을 하자니 재밌다
에...만들고 있는 프로그램의 용도는 리소스 팩 파일 관리프로그램이다.
머 재밌기는 하지만 패치 프로그램을 만들어야 해서 Drag&Drop까지만 하고 치울 생각이다.
어플리케이션 내로 Drag는 메세지 핸들링만 해주면 되니까 쉬운데 밖으로 빼는건 꽤 난이도가 있을듯.

http://www.codeproject.com/miscctrl/pptooltip.asp

Prof-uis에 있는 툴팁이 별로 안이뻐서 코드프로젝트에 있는걸 가져다 달았다.

이쁘긴 한데 html노가다다.. 으ㅡ으

'게임개발 > 풍류공작소' 카테고리의 다른 글

과연  (0) 2006.04.27
클베 직전 막판 뒤집기  (0) 2006.04.25
오늘은 클베날  (0) 2006.04.25
클베 1주일전  (0) 2006.04.18
2 Chain IK  (0) 2006.02.14

사실 원래는 적당한 크기로 잡혀져서 조절할 일이 별로 없었는데.
멀 삽질했는지 한줄씩 밖에 안나와서 상당히 난감한 상황이었다-_-;
잡설은 집어치우고..

콤보박스를 선택하면 상하크기조절은 Disable된 상태인데..
콤보박스의 화살표(얘를 머라그러나-_-) 부분을 눌러주면
드롭박스 부분의 크기를 설정할 수 있다.

허접함을 뛰어넘어 검색도 한번 안해본 이 게으른 담당 프로그래머 때문에 몇주간 툴을 불편하게 사용하신 그래픽팀 일동에게 심심한 사죄의 말씀을-_-;

'게임개발 > ' 카테고리의 다른 글

D3DXLoadSurfaceFromSurface  (0) 2005.12.27
mutable  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07

+ Recent posts