none
비주얼베이직 .NET 에서 FlashWindow 함수 사용하기

    일반 토론

  • 안녕하십니까? 쥔장입니다.

    다름이 아니오라 제가 한달 전 비주얼베이직 6.0 버전에서 네이버 카페 채팅처럼 창에 어떠한 명령이 이루어졌을 때

    작업표시줄의 아이콘을 깜빡일 수 있는 API  (http://cafe.naver.com/vscsharp/1065)  를 소개해 드렸었는데요,

     해당 API 를 .NET 버전의 비주얼베이직에서는 사용하기가 쉽지 않습니다.

    따라서, 오늘은 .NET 버전의 비주얼베이직에서 창을 깜박이는 방법에 대해 알아보도록 하겠습니다.

    지금 시간이 없는 관계로 주석으로만 간략하게 설명해 놓겠습니다.

    이후, 본 소스코드에 대해 질문있으시면 '질문있어요' 게시판에 글 올려주시면 정성어린 답변 드리겠습니다.

     

        Public Structure FLASHWINFO
            Public cbSize As Int32
            Public hwnd As IntPtr
            Public dwFlags As Int32
            Public uCount As Int32
            Public dwTimeout As Int32
        End Structure
    
        Private Declare Function FlashWindowEx Lib "user32.dll" (ByRef pfwi As FLASHWINFO) As Int32
    
        Public Const FLASHW_STOP = 0        ' 깜빡이는 것을 중지한 채, 창의 상태를 초기화 시킵니다. 
        Public Const FLASHW_CAPTION = &H1   ' 해당 창만 깜빡입니다.
        Public Const FLASHW_TRAY = &H2      ' 작업표시줄의 아이콘만 깜빡입니다.
        Public Const FLASHW_ALL = &H3       ' 작업표시줄의 아이콘과 해당 창 전체를 함께 깜빡입니다. 
        Public Const FLASHW_TIMER = &H4     ' 중지명령을 정해줄 때 까지 지속적으로 깜빡입니다.
        Public Const FLASHW_TIMERNOFG = &HC ' 창이 활성화 되기 전까지 지속적으로 깜빡입니다.
    
        Public Sub FlashIcon(ByVal Handle%, ByVal Flags%)
            Dim flash As New FLASHWINFO
            flash.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(flash) '/// 구조체의 크기를 Byte 단위로 지정하여
                                                                                                                     줍니다.
            flash.hwnd = Handle '///어떠한 창 (Form) 을 깜박일 지 지정합니다. 
            flash.dwFlags = Flags
            flash.dwTimeout = 500 '/// 깜빡이는 속도를 지정합니다. (값이 '0' 이면 기본 값으로 지정됩니다.)
            FlashWindowEx(flash) '/// 창이나 작업표시줄의 아이콘을 깜빡입니다.
        End Sub
    

     

    사용하실 때에는 다음과 같이 사용하세요.
    FlashIcon(MyBase.Handle, FLASHW_TRAY + FLASHW_TIMERNOFG)
    • 편집됨 devlife 2011년 11월 2일 수요일 오전 6:34
    2011년 11월 2일 수요일 오전 6:32

모든 응답