티스토리 뷰
으아악.
CButtonST(http://www.codeproject.com/KB/buttons/cbuttonst.aspx, 버튼에 이미지를 씌우거나, ToolTip을 붙이는 등 스타일을 입힐 수 있는 버튼 라이브러리 ) 라는 오픈소스를 활용하려고 했는데 이미지를 씌우려면 BITMAP 핸들이 필요했다.
그렇다고 내가 쓰고자 하는 애들을 전부다.. Resource로 추가해서 핸들을 얻기에는 프로그램이 너무 무거워 질 것 같아서
Resource에 추가하지 않고도 로컬에 있는 파일로 BITMAP 핸들로 얻는 방법을 찾아보기 시작했다.
HBITMAP CButtonST::MakeDIBSection(LPCTSTR _tszFilePath)
{
HANDLE hFile = CreateFile(_tszFilePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(INVALID_HANDLE_VALUE == hFile)
return NULL;
DWORD nFileSize, dwRead;
BITMAPFILEHEADER fh;
BITMAPINFO* ih;
ReadFile(hFile, &fh, sizeof(BITMAPFILEHEADER), &dwRead, NULL);
nFileSize = fh.bfOffBits - sizeof(BITMAPFILEHEADER);
ih = (BITMAPINFO*)malloc(nFileSize);
ReadFile(hFile, ih, nFileSize, &dwRead, NULL);
PVOID pRaster;
HBITMAP hBit = CreateDIBSection(NULL, ih, DIB_RGB_COLORS, &pRaster, NULL, 0);
ReadFile(hFile, pRaster, fh.bfSize - fh.bfOffBits, &dwRead, NULL);
free(ih);
CloseHandle(hFile);
return hBit;
}
사용법
Ex )
m_excel.SetBitmaps( CButtonST::MakeDIBSection( CViewUtil::GetPath(
_T("exfin\\img\\excel.bmp")) ), RGB( 255, 0, 255 ) );
'Study > Application > Windows' 카테고리의 다른 글
IFERROR 2003에서 구현하기 (0) | 2011.09.20 |
---|---|
CreateDIBSection (2) | 2011.08.19 |
MFC에서 특정위치 선택하기 ( MFC selection change ) (0) | 2011.05.16 |
SQLite와 MFC연동을 위한 정보들.. (링크) (0) | 2010.12.01 |
MFC 에서 다른 응용프로그램을 실행시켜보자. (0) | 2010.10.05 |
- Total
- Today
- Yesterday
- yjaeseok
- 리눅스 커널 2.6 구조와 원리
- 리눅스
- jaeseokyoon
- 소설네트워크2
- 창의과학교구
- watchface
- 해커톤
- jakeyoon
- 릴레이대회본선
- 안드로이드
- 핸즈온머신러닝
- GDG SSU
- 창조경제혁신센터
- GDG
- 안드로이드폰
- WatchFaceHack
- Linux
- 리눅스2.6
- 윤재석
- 리눅스 커널 2.6
- gdg watchfacehack
- 하쭈서쭈
- Developing on AWS
- 서버개발자
- Jake Yoon
- 숭실대
- AndroidWear
- 그래비트랙스
- gdgssu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |