일단 BMP를 ICO로 웹에서 변경하고 다운 받은 후
리소스에 추가하고 그걸 불러 오는 쪽으로 전환을 했는데..
속성에 보면 Bitmap과 Icon이 있는데 둘다 체크해도 상관없고
둘중에 하나라도 체크를 해주어야 아이콘이 표시된다.
왼쪽은 icon/bitmap true로 설정
오른쪽은 둘다 false로 설정했을때 표시되는 내용
다만, 둘다 false로 표시해도
충분히 크면 표시는 되는데 예상한 것과는 좀 다르게 작동하는 것 같아서
아이콘 크기라던가 이런거 좀 고민중..
버튼을 줄이면 이런식으로 나오는데..
버튼의 중심점을 기준으로 왼쪽에 표시하고 크기에 따라 잘리게 되는것 같은 느낌?
BM_SETIMAGE is not a button style, but a message which is sent to the window in order to set a bitmap. What you probably want is the BS_BITMAP style. Unfortunately as far as I know, it is not possible to have both text and a bitmap on a standard button. But you should find plenty of working implementations of a custom button class on sites like codeguru or codeproject. |
[링크 : https://stackoverflow.com/.../how-to-show-both-icon-and-text-on-button-on-mfc]
[링크 : https://www.codeproject.com/.../HowpluscanplusIpluscreateplusplusbuttonplusshowing]
이상하다.. 왜 두배 정도 커졌지?
+
SetIcon 대신에 LoadImage를 해서 HICON 핸들을 얻은후 그걸로 넣으면 해결
간단한 방법 없나...
[링크 : http://forums.codeguru.com/showthread.php?394090-Resizing-icon-on-a-button]
[링크 : https://www.experts-exchange.com/.../MFC-SetIcon-problem-if-called-twice.html]
[링크 : https://www.experts-exchange.com/.../CMFCButton-Icon-twice-as-big-as-it-should-be.html]
+
void CtestDlg::setIconBydlgitem(int dlg, int icon) { CButton *btn; btn = ((CButton*)GetDlgItem(dlg)); HICON DSN_ICON = (HICON)::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(icon), IMAGE_ICON, 16, 16, 0); btn->SetIcon(DSN_ICON); } |
+
HICON SetIcon( HICON hIcon, BOOL bBigIcon ); hIcon A handle to a previous icon. bBigIcon Specifies a 32 pixel by 32 pixel icon if TRUE; specifies a 16 pixel by 16 pixel icon if FALSE. |
[링크 : https://msdn.microsoft.com/ko-kr/library/9cb3b7b5.aspx]
'Programming > C Win32 MFC' 카테고리의 다른 글
MFC CMenu (0) | 2017.10.16 |
---|---|
MFC 다이얼로그 창 크기 변경 못하도록 하기 (2) | 2017.10.11 |
MFC 버튼에 이미지 넣기 (0) | 2017.10.10 |
MFC CMenu 폰트 변경하기 (0) | 2017.10.08 |
MFC String table (0) | 2017.09.29 |