본문 바로가기
C | C++ | VC++

[Tip] 윈7에서 툴바 툴팁에 검은 잔상이 생길때

by 두루물 2010. 9. 17.
How to Fix Toolbar Tooltip's black background at a moment

이 현상은 원래 HIDE 된 상태의 팝업 윈도우에 WS_EX_LAYERED 의 레이어 속성이 들어가고 반투명
윈도우를 만들고 %를 올려서 서서히 보이게 하기 위한 기능으로 자주 사용하는데,문제는
HIDE된 Window가 나타날때 바로 검은반전 색상으로 껌뻑거리게 되는 현상 때문이다.

바로 테마를 먹힌 툴팁도 그러한데, 이런 현상은 다음처럼 반투명 레이어가 기본으로 툴바에 적용되는
툴팁의 속성을 변경해줌으로써 해결한다.

아래의 코드는 kxLibrary 의 툴팁 클래스 소스중 해당 부분이다.

 /*
   very important! windows 7 and theme applied, the tooltip filled black background at a moment.
   toolbar's default tooltip 컨트롤이 검은배경에 껌뻑거림 현상이 발견됨 win7
   이것은 WS_EX_LAYERED 속성으로 SW_SHOW 시점에서 반투명과(WS_EX_LAYERED) 불투명(non WS_EX_LAYERED)
   속성 전환시 나타나는 현상이다. krkim in duruedit
  */
 m_wndToolBar.GetToolTips().TurnOffTransparentLayer();
 m_wndToolBar.GetToolTips().SetDelayTime(TTDT_AUTOMATIC,1000);

void kxToolTipCtrl::TurnOffTransparentLayer()
{
    if(IsWindow())
        ModifyStyleEx(WS_EX_TRANSPARENT|WS_EX_LAYERED,0);//black fill background tooltip appear
}

출처: 자작(http://krkim.net)