수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1693990
  • Today | 341
  • Yesterday | 588

Programming/MFC2007/03/01 18:49

Registry에 File Icon등록해주기

원본 : http://www.debuglab.com/knowledge/registryfileicon.html

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
2007/03/01 18:49 2007/03/01 18:49
Posted by webdizen
Tags File Icon, Registry
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2658

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 590 591 592 593 594 595 596 597 598 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • List Control
  • 김지원
  • 학군단
  • gcc
  • 포트스캐닝
  • 대학본부
  • MBCS
  • 아이콘
  • Hangame
  • Socket
  • net-snmp
  • 파리
  • MP3 플레이어
  • Security
  • The Secret
  • Source
  • 습관
  • Architecture
  • NirSoft
  • Network Simulator 2

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  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      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.