이 영역을 누르면 첫 페이지로 이동
웬디의 기묘한 이야기 블로그의 첫 페이지로 이동

웬디의 기묘한 이야기

페이지 맨 위로 올라가기

[C/C++] 작업표시줄 아이콘 깜빡이게 하기 (FlashWIndow)

웬디의 기묘한 이야기

[C/C++] 작업표시줄 아이콘 깜빡이게 하기 (FlashWIndow)

  • 2019.07.03 21:32
  • ⌨ DEVELOPMENT/C++
반응형

카카오톡 쪽지 또는 백그라운드 작업 후 완료되었음을 사용자에게 알려주기 위한 방법 중에 한 가지입니다.

해당 기능을 위해서는 FlashWindowEx라는 API를 사용하게 됩니다.

MSDN을 참고하게 되면 다음과 같은 설명이 있습니다.

 

MSDN HOMEhttps://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-flashwindowex

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는 다음 페이지에서 확인할 수 있습니다.

MSDN HOMEhttps://docs.microsoft.com/ko-kr/windows/win32/api/winuser/ns-winuser-flashwinfo

 

만약 무제한 깜빡이는 옵션을 주었지만 취소하고 싶은 경우는 다음과 같이 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

댓글

댓글을 사용할 수 없습니다.

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [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
다른 글 더 둘러보기

정보

웬디의 기묘한 이야기 블로그의 첫 페이지로 이동

웬디의 기묘한 이야기

  • 웬디의 기묘한 이야기의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 이야기

카테고리

  • 분류 전체보기 (204)
    • MY STORY (2)
    • 📸 WALKING WITH YOU (85)
      • 아이슬란드 신혼여행 이야기 (14)
      • 대한민국 구석구석 (62)
      • CONTAX N1 + T* 28-80mm (4)
      • SAMSUNG NX3000 (1)
      • 어느 멋진 날 (4)
    • ⌨ DEVELOPMENT (80)
      • BOOK:Review (1)
      • AI (13)
      • C++ (26)
      • Python (10)
      • WIndows Hooking (9)
      • Windows Kernel (3)
      • Design Pattern (3)
      • Debugging (9)
      • Tools (0)
      • Project (1)
      • Android (1)
      • 상업용 무료폰트 (4)
    • OS (4)
      • News (0)
      • Windows 일반 (4)
    • 모바일 (2)
      • 모바일 게임 (2)
    • 멘사 퍼즐 (9)
    • 생활 꿀 TIP (7)
      • 건강 (3)
      • 일상 (2)
    • 물생활 (8)
      • 골든볼 라미네지 롱핀 (8)
    • IT 기기 (2)
    • BLOG (4)
      • TISTORY BLOG TIP (3)

인기 글

공지사항

태그

  • AI
  • 신혼여행
  • 아이슬란드
  • windbg
  • c++
  • 해외여행
  • 카페
  • c

나의 외부 링크

  • kernel undocument api
  • 지구 관찰자의 일기
  • 지구와 지구곰

정보

WENDYS의 웬디의 기묘한 이야기

웬디의 기묘한 이야기

WENDYS

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © WENDYS. Designed by Fraccino.

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.