C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[2814] Re:[질문]이미지 리스트에 추가하기....
김봉만 [] 5049 읽음    2000-01-21 00:00
크허 자문 자답입니다...
불철주야 3일만에 답을 올립니다

    ImagesList = new TImageList (this);

    ImagesList -> AllocBy = 7;
    ImagesList -> ShareImages = true;
    Graphics::TBitmap *bmp = new Graphics::TBitmap();
   try{
       bmp->LoadFromResourceID((int)Sysinit::HInstance,IDB_MYDRV);
       LargeImageList->Add(bmp,bmp);
       bmp->LoadFromResourceID((int)Sysinit::HInstance,IDB_MY16DRV);
       SmallImageList->Add(bmp,bmp);
       bmp->FreeImage();
     }
     catch(...){ MessageBeep(MB_ICONEXCLAMATION);}
    delete bmp;

이거 입니다....
T.T

리소스 화일에서 불르는 방식으루 해결 했져....

물론 고급스런 방법두 많겠지만 ..

그럭저럭 이거라두 .....

이 사이트를 사랑 합니다... ^^;;




김봉만 님이 쓰신 글 :
:
:     TImageList *SmallImageList = new TImageList(this);
:     TImageList *LargeImageList = new TImageList(this);
:
:     SmallImageList->ShareImages = true;
:     LargeImageList->ShareImages = true;
:     SmallImageList->Handle = SHGetFileInfo("", 0, &IconInfo, sizeof(IconInfo),
:                                               SHGFI_ICON | SHGFI_SMALLICON |
:                                               SHGFI_SYSICONINDEX);
:     LargeImageList->Handle = SHGetFileInfo("", 0, &IconInfo, sizeof(IconInfo),
:                                               SHGFI_ICON | SHGFI_LARGEICON |
:                                               SHGFI_SYSICONINDEX);
:
: 팁 트릭 란의 비트맵에서 아이콘 읽기 를 참조 하다가 잘 안되서 질문 올립니다...
:
: 위의 소스는 시스템의 이미지 리스트 입니다....
:
: 이렇게 하니깐 구해 지더군여....
:
: 팁란의 방식대로 하면 추가가 잘 되는데...
:
: 화일에서 읽어서 넣을려구하면 치명적 에러로 리부팅을 해야 합니다 T.T
:
: 도와 주소서....
:
: 코맨트가 마나서 지저분해 보이는것은 지난 이틀간의 눈물입니다.....-.-
:
:
: 다음은 제가 시도한 여러가지 입니다
:
:
: /*
:     char tmp[5];
:     sprintf(tmp,"%d",LargeImageList -> Count );
:     ShowMessage  (tmp);
:
:
:
:     int IconSizeX = GetSystemMetrics(SM_CXICON);      SM_CXICONSPACING, SM_CYICONSPACING
:     int IconSizeY = GetSystemMetrics(SM_CYICON);     SM_CXICON,SM_CYICON
:
:     int IconSmallSizeX = GetSystemMetrics(SM_CXSMICON);    SM_CXSMICON,SM_CYSMICON
:     int IconSmallSizeY = GetSystemMetrics(SM_CYSMICON);
:
: TIcon *NewIcon = ExtractIcon(HInstance, "파일의 전체경로", 0);
: ImageList1->AddIcon(NewIcon);
: UINT ExtractIconEx(
:   LPCTSTR lpszFile,        // file name
:   int nIconIndex,          // icon index
:   HICON *phiconLarge,      // large icon array
:   HICON *phiconSmall,      // small icon array
:   UINT nIcons              // number of icons to extract
: );
:
:
: BOOL DestroyIcon(
:   HICON hIcon   // handle to icon
: );
: */
:     TIcon *NewIcon =  new TIcon;
:     TIcon *NewSmallIcon =  new TIcon;
: //    TIcon *ret =  new TIcon;
:     HICON  * a = new HICON;
:     HICON  * b = new HICON;
:
:     char tmp[55];
:     sprintf(tmp,"big:%d    small:%d",LargeImageList -> Count ,SmallImageList -> Count);
:     ShowMessage  (tmp);
: /*
:         int sx,sy;
:     ImageList_GetIconSize(LargeImageList,&sx,&sy);
:     sprintf(tmp,"big:%d    small:%d",sx,sy);
:     ShowMessage  (tmp);
:
:     ImageList_GetIconSize(SmallImageList ,&sx,&sy);
:     sprintf(tmp,"big:%d    small:%d",sx,sy);
:     ShowMessage  (tmp);
: */
:
: //     int ret = ExtractIconEx("C:\\Program Files\\Borland\\CBuilder3\\Lib\\res\\my.ico",
:      int ret = ExtractIconEx("C:\\Program Files\\WinZip\\winzip32.exe",
:                              0,
:                              a,//NewIcon->Handle,
:                              b,//NewSmallIcon->Handle,
:                              1);
:     sprintf(tmp,"%d",ret);
:     ShowMessage  (tmp);
:     if ( 1)
:     {
:         NewIcon->Handle = a,
:         NewSmallIcon->Handle = b,
:
:         LargeImageList ->AddIcon(NewIcon);
:         SmallImageList ->AddIcon(NewSmallIcon);
:     }
:     sprintf(tmp,"big:%d    small:%d",LargeImageList -> Count ,SmallImageList -> Count);
:     ShowMessage  (tmp);
: //    delete  NewIcon;
: //    delete  NewSmallIcon;
:
:     // Create the "And" mask
:     int IconSizeX = GetSystemMetrics(SM_CXICON);     // SM_CXICONSPACING, SM_CYICONSPACING
:     int IconSizeY = GetSystemMetrics(SM_CYICON);     //SM_CXICON,SM_CYICON
:
:     int IconSmallSizeX = GetSystemMetrics(SM_CXSMICON);   // SM_CXSMICON,SM_CYSMICON
:     int IconSmallSizeY = GetSystemMetrics(SM_CYSMICON);
:
:     Graphics::TBitmap * AndMask = new Graphics::TBitmap;
:     AndMask->LoadFromFile("C:\\Program Files\\Borland\\CBuilder3\\Lib\\res\\my.ico");
: //    AndMask->Monochrome = true;
:     AndMask->Width = IconSmallSizeX;
:     AndMask->Height = IconSmallSizeY;
:     // Draw on the "And" mask
: //    AndMask->Canvas->Brush->Color = clBlue;
: //    AndMask->Canvas->FillRect(Rect(0, 0, IconSizeX, IconSizeY));
: //    AndMask->Canvas->Brush->Color = clBlack;
: //    AndMask->Canvas->Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4);
:
:     // Draw as a test
:     // Create the "XOr" mask
:     Graphics::TBitmap * XOrMask = new Graphics::TBitmap;
:     XOrMask->LoadFromFile("C:\\Program Files\\Borland\\CBuilder3\\Lib\\res\\my.ico") ;
:
:     XOrMask->Width = IconSmallSizeX;
:     XOrMask->Height = IconSmallSizeY;
:     // Draw on the "XOr" mask
: //    XOrMask->Canvas->Brush->Color = clBlack;
: //    XOrMask->Canvas->FillRect(Rect(0, 0, IconSizeX, IconSizeY));
: //    XOrMask->Canvas->Pen->Color = clRed;
: //    XOrMask->Canvas->Brush->Color = clRed;
: //    XOrMask->Canvas->Ellipse(4, 4, IconSizeX - 4, IconSizeY - 4);
:
:     // Draw as a test
:
:     // Create a icon
:     TIcon * Icon = new TIcon;
:     TIconInfo IconInfo2;
:     IconInfo2.fIcon = true;
:     IconInfo2.xHotspot = 0;
:     IconInfo2.yHotspot = 0;
:     IconInfo2.hbmMask = AndMask->Handle;
:     IconInfo2.hbmColor = XOrMask->Handle;
:     Icon->Handle = CreateIconIndirect(&IconInfo2);
:
: //    if ( (LargeImageList -> Count) != 469 )
:
: //    TIcon * Icon = new TIcon;
: //    Icon->LoadFromFile("C:\\Program Files\\Borland\\CBuilder3\\Lib\\res\\tmp.bmp");
: //    LargeImageList ->AddIcon(Icon);
:     SmallImageList ->AddIcon(Icon);
:
:     sprintf(tmp,"big:%d    small:%d",LargeImageList -> Count ,SmallImageList -> Count);
:     ShowMessage  (tmp);
:    
:     // Destroy the temporary bitmaps
:     delete AndMask;
:     delete XOrMask;
:     // Free the icon
:     delete Icon;
: /*
:     sprintf(tmp,"%d",LargeImageList -> Count );
:     ShowMessage  (tmp);
: */
:

+ -

관련 글 리스트
2812 [질문]이미지 리스트에 추가하기.... 김봉만 4568 2000/01/20
2814     Re:[질문]이미지 리스트에 추가하기.... 김봉만 5049 2000/01/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.