[C/C++] 작업표시줄 아이콘 깜빡이게 하기 (FlashWIndow)
카카오톡 쪽지 또는 백그라운드 작업 후 완료되었음을 사용자에게 알려주기 위한 방법 중에 한 가지입니다.
해당 기능을 위해서는 FlashWindowEx라는 API를 사용하게 됩니다.
MSDN을 참고하게 되면 다음과 같은 설명이 있습니다.
FlashWindowEx function
Flashes the specified window. It does not change the active state of the window.
즉, 작업표시줄에 지정된 윈도를 깜빡이게 하지만 창을 활성화 화지는 않는다는 얘기죠
해당 API를 사용하면서 주의하실 점
Typically, you flash a window to inform the user that the window requires attention but does not currently have the keyboard focus. When a window flashes, it appears to change from inactive to active status. An inactive caption bar changes to an active caption bar; an active caption bar changes
즉, 이미 포커스를 갖고 있는 윈도에 대해서는 해당 기능이 동작하지 않습니다.
그렇다면 어떻게 사용하는지 샘플을 볼까요?
START SAMPLE
//
// 사용자 확인 시점까지 깜빡이기
//
FLASHWINFO fi;
fi.cbSize = sizeof(FLASHWINFO);
fi.hwnd = this->m_hWnd;
fi.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
fi.uCount = 0;
fi.dwTimeout = 0;
::FlashWindowEx(&fi);
다음과 같이 사용한 경우 사용자가 작업표시줄 아이콘을 클릭할 때까지 깜빡이게 되며, dwFlags를 통하여 1회만 깜빡이게 할지 for문 등을 이용해 특정 시간마다 깜빡이게 할지 조절할 수 있습니다.
구조체 정보 중 Flags는 다음 페이지에서 확인할 수 있습니다.
만약 무제한 깜빡이는 옵션을 주었지만 취소하고 싶은 경우는 다음과 같이 STOP Flags를 적용하여 깜빡임을 중지할 수 있습니다.
STOP SAMPLE
//
// flash stop.
//
FLASHWINFO fi;
fi.cbSize = sizeof(FLASHWINFO);
fi.hwnd = this->m_hWnd;
fi.dwFlags = FLASHW_STOP;
fi.uCount = 0;
fi.dwTimeout = 0;
::FlashWindowEx(&fi);
'⌨ DEVELOPMENT > C++' 카테고리의 다른 글
[C/C++] 윈도우10 Boost 최신버전 설치 및 사용법 (13) | 2019.07.27 |
---|---|
[C/C++] URL 전달을 위한 urlencode & urldecode (1) | 2019.07.11 |
[C/C++] process crash 로그 및 덤프 남기기 (access violation) (0) | 2019.07.06 |
[C/C++] convert string, wstring, utf-8 (9) | 2019.07.06 |
[C++] std::string to std::wstring 서로 변환하기 (3) | 2016.01.31 |
[C/C++] DLL injection. 다른 Process에 내 DLL Load 하기 (5) | 2016.01.03 |
__cdecl, __stdcall, __fastcall x86 호출 규약(Calling Convention) (4) | 2016.01.01 |
[C/C++] FormatMessage 윈도우 GetLastError를 메시지로!! (0) | 2015.12.29 |
댓글
이 글 공유하기
다른 글
-
[C/C++] process crash 로그 및 덤프 남기기 (access violation)
[C/C++] process crash 로그 및 덤프 남기기 (access violation)
2019.07.06 -
[C/C++] convert string, wstring, utf-8
[C/C++] convert string, wstring, utf-8
2019.07.06 -
[C++] std::string to std::wstring 서로 변환하기
[C++] std::string to std::wstring 서로 변환하기
2016.01.31 -
[C/C++] DLL injection. 다른 Process에 내 DLL Load 하기
[C/C++] DLL injection. 다른 Process에 내 DLL Load 하기
2016.01.03