원본 : http://www.debuglab.com/knowledge/registryfileicon.html
1.요약
프로그램에서 사용되는 특정 파일의 Icon을 지정하는 방법을 알아보죠.
2.본문
먼저 Resource에 icon를 추가합니다.
Registry에서는 추가된 Icon의 번호를 가지고 사용하는데 맨처음 추가 된 icon을 1로 해서 차례로 증가해 나갑니다. 세번째로 추가된 Icon를 (3)를 사용하는 경우를 예로 들어 설명하죠.
3.예제
4.참고
_AfxSetRegKey() 라는 함수는 DocMgr.cpp 이라는 곳에 있습니다. Document Manager 라는 뜻인것 같네요.
어쨌든, 아래의 소스를 추가로 넣어주시면 됩니다.
(Dialog Based 에서~ ^^.)
---
소스.. DocMgr.cpp 中..
- 2001.08.13 Smile Seo -
1.요약
프로그램에서 사용되는 특정 파일의 Icon을 지정하는 방법을 알아보죠.
2.본문
먼저 Resource에 icon를 추가합니다.
Registry에서는 추가된 Icon의 번호를 가지고 사용하는데 맨처음 추가 된 icon을 1로 해서 차례로 증가해 나갑니다. 세번째로 추가된 Icon를 (3)를 사용하는 경우를 예로 들어 설명하죠.
strDefaultIconCommandLine = "C:\\ActiveTutor\\ATRecorder,3";
strFileTypeId = "ActiveTutorFile3"
strFileTypeName = "Active Tutor File3";
strFilterExt = ".atk";
//first register the type ID of our server
_AfxSetRegKey(strFileTypeId, strFileTypeName);
// IconCommandLine값을 Registry에 등록한다.
strTemp.Format("%s\\DefaultIcon", strFileTypeId);
_AfxSetRegKey(strTemp, strDefaultIconCommandLine);
// Registry에 파일 등록
LONG lSize = _MAX_PATH * 2;
LONG lResult = ::RegQueryValue(HKEY_CLASSES_ROOT, strFilterExt,
strTemp.GetBuffer(lSize), &lSize);
strTemp.ReleaseBuffer();
이렇게 등록을 해주면 프로그램의 Resource상의 세번째 아이콘을 *.atk라는 파일의 아이콘으로 사용하게 됩니다. 3.예제
4.참고
_AfxSetRegKey() 라는 함수는 DocMgr.cpp 이라는 곳에 있습니다. Document Manager 라는 뜻인것 같네요.
어쨌든, 아래의 소스를 추가로 넣어주시면 됩니다.
(Dialog Based 에서~ ^^.)
---
소스.. DocMgr.cpp 中..
BOOL _AfxSetRegKey(LPCTSTR lpszKey, LPCTSTR lpszValue, LPCTSTR lpszValueName)
{
if (lpszValueName == NULL)
{
if (::RegSetValue(HKEY_CLASSES_ROOT, lpszKey, REG_SZ,
lpszValue, lstrlen(lpszValue) * sizeof(TCHAR)) != ERROR_SUCCESS)
{
TRACE1("Warning: registration database update failed for key '%s'.\n",
lpszKey);
return FALSE;
}
return TRUE;
}
else
{
HKEY hKey;
if(::RegCreateKey(HKEY_CLASSES_ROOT, lpszKey, &hKey) == ERROR_SUCCESS)
{
LONG lResult = ::RegSetValueEx(hKey, lpszValueName, 0, REG_SZ,
(CONST BYTE*)lpszValue, (lstrlen(lpszValue) + 1) * sizeof(TCHAR));
if(::RegCloseKey(hKey) == ERROR_SUCCESS && lResult == ERROR_SUCCESS)
return TRUE;
}
TRACE1("Warning: registration database update failed for key '%s'.\n", lpszKey);
return FALSE;
}
}
- 2001.08.13 Smile Seo -
"MFC" 카테고리의 다른 글
- Dialog Based 프로그램에서 가속키 기능 넣기 (0)2007/03/01
- '객체 삽입' 상자 없이 객체 삽입하기 (0)2007/03/01
- Registry에 File Icon등록해주기 (0)2007/03/01
- 특정 Registry Key안의 Value값 가져오기 (0)2007/03/01
- 프로그램안에서 Registry 이름 지정하기 (0)2007/03/01

수안이의 컴퓨터 연구실



Leave your greetings.