none
CString으로한 된것을 LoadBitmapW으로 할방법 없을까요.? RRS feed

  • 질문

  • CString  SkillImage  = _T("");

    SkillImage.Format(_T("IDB_%s"),strAttrib);

         CBitmap  bmp;

         bmp.LoadBitmapW(SkillImage);

    SkillImage를 IDB_XXX 처럼 하면 되는것은 알고있습니다만.

    위의 형식으로 CString으로한 된것을 LoadBitmapW으로 할방법 없을까요.?

    2011년 6월 1일 수요일 오후 3:24

답변

  • IDB_...은 리소스에 #define으로 정의된 상수 입니다. 즉, 숫자라는 이야기죠. 컴파일이 되면 IDB...하는 문자열은 없어지고 남는건 상수 숫자 뿐입니다. 그 사이에는 어떠한 연관 관계도 존재하지 않습니다. 개발자가 의도적으로 연관관계를 만들지 않았다면 말입니다. 따라서 CString으로 로드할 수 있는 방법은 없습니다.

     

    하지만 만약 개발자가 IDB...과 숫자 사이에 어떤 연관 관계를 만들어 두었다면 IDB_0001은 숫자로 10000이고, IDB_0002는 10001과 같은 형태로 말이죠. 그렇다면 런타임에 문자열을 파싱해서 관갸를 통해서 숫자를 구한 다음 그 숫자를 넣어서 LoadBitmap을 하실 수는 있습니다. 정의된 숫자는 VS의 리소스 에디터에서 심볼 보기를 선택하시면 어떤 값으로 정의되어 있는지 보실 수 있습니다.

    • 답변으로 표시됨 UnKnown_root 2012년 4월 11일 수요일 오전 4:36
    2011년 6월 6일 월요일 오전 9:56