Skip navigation

We know.


edit: that’s what you get for leaving an incomplete posting!

The previously cited msdn article is GONE. I didn’t know microsoft did that, but its REALLY annoying.

概要 Overview 
詳細 Details 
サンプルコード Sample code 
関連情報 Related Information 
すべて展開する | すべて折りたたむ Expand All | Collapse All 
概要 Overview Microsoft Windows NT 4.0 と Microsoft Windows 98 は、マウスがウィンドウを離れたことをウィンドウに通知する TrackMouseEvent API を提供しています。 Microsoft Windows NT 4.0 and Microsoft Windows 98, to notify the window that the mouse off the window TrackMouseEvent API provides. Windows 95 では、このような通知方法を提供していません。 Windows 95 does not provide this notification method. アプリケーションは、マウスがウィンドウ内に入った時にタイマーを起動し、そのタイマーを使ってマウスの位置を監視して、ウィンドウ範囲内にあるかを判断することによって、マウスがウィンドウ外に出たことを検出できます。 Application, start the timer when the mouse enters the window, to monitor the position of the mouse using a timer, or by a judge within the window, out the window that the mouse can be detected. 
 先頭へ戻る Back to the top 
詳細 Details 以下のサンプルコードは、TrackMouseEvent のインタフェースを使うように、Windows NT3.51 と Windows 95 で、マウスが離れたことを検出する方法を示した例です。 The following sample code, TrackMouseEvent to use interface, Windows NT3.51 with Windows 95, is an example of how to detect that the mouse away. WM_MOUSEHOVER の機能の実現は読者にお任せいたします。 We realize the function of WM_MOUSEHOVER leave it to your readers. 
 先頭へ戻る Back to the top 
サンプルコード Sample code 
    #if(_WIN32_WINNT < 0x0400) # if (_WIN32_WINNT cbSize  cbSize hwndTrack)) { if (! IsWindow (ptme-> hwndTrack)) ( 
          OutputDebugString( OutputDebugString ( 
             TEXT("TrackMouseEvent: invalid hwndTrack\n")); TEXT ( "TrackMouseEvent: invalid hwndTrack \ n")); 
          return FALSE; return FALSE; 
       } ) 

       if (!(ptme->dwFlags & TME_LEAVE)) { if (! (ptme-> dwFlags & TME_LEAVE)) ( 
          OutputDebugString(TEXT("TrackMouseEvent: invalid dwFlags\n")); OutputDebugString (TEXT ( "TrackMouseEvent: invalid dwFlags \ n")); 
          return FALSE; return FALSE; 
       } ) 

       return SetTimer(ptme->hwndTrack, ptme->dwFlags, return SetTimer (ptme-> hwndTrack, ptme-> dwFlags, 
                       100,(TIMERPROC)TrackMouseTimerProc); 100, (TIMERPROC) TrackMouseTimerProc); 
    } ) 
    #endif # endif 

    LRESULT CALLBACK LRESULT CALLBACK 
    MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 
    { ( 
       TRACKMOUSEEVENT tme; TRACKMOUSEEVENT tme; 
       static BOOL fInWindow; static BOOL fInWindow; 
       static BOOL fInMenu; static BOOL fInMenu; 
       switch (uMsg) { switch (uMsg) ( 
          case WM_CREATE: case WM_CREATE: 
             fInWindow = FALSE; fInWindow = FALSE; 
             fInMenu = FALSE; fInMenu = FALSE; 
             return 0; return 0; 

          case WM_MOUSEMOVE: case WM_MOUSEMOVE: 
             if (!fInWindow) { if (! fInWindow) ( 
                fInWindow = TRUE; fInWindow = TRUE; 
                tme.cbSize = sizeof(TRACKMOUSEEVENT); tme.cbSize = sizeof (TRACKMOUSEEVENT); 
                tme.dwFlags = TME_LEAVE; tme.dwFlags = TME_LEAVE; 
                tme.hwndTrack = hWnd; tme.hwndTrack = hWnd; 
                if (!TrackMouseEvent(&tme)) { if (! TrackMouseEvent (& tme)) ( 
                   MessageBox(hWnd, MessageBox (hWnd, 
                              TEXT("TrackMouseEvent Failed"), TEXT ( "TrackMouseEvent Failed"), 
                              TEXT("Mouse Leave"),MB_OK); TEXT ( "Mouse Leave"), MB_OK); 
                } ) 
             } ) 
          break; 

          case WM_MOUSELEAVE: case WM_MOUSELEAVE: 
             fInWindow = FALSE; fInWindow = FALSE; 
             if (!fInMenu) if (! fInMenu) 
                MessageBox(hWnd,TEXT("Elvis has left the building"), MessageBox (hWnd, TEXT ( "Elvis has left the building"), 
                           TEXT("Mouse Leave"),MB_OK); TEXT ( "Mouse Leave"), MB_OK); 
             break; 
          case WM_ENTERMENULOOP: case WM_ENTERMENULOOP: 
             fInMenu = TRUE; fInMenu = TRUE; 
             break; 

          case WM_EXITMENULOOP: case WM_EXITMENULOOP: 
             fInMenu = FALSE; fInMenu = FALSE; 
             break; 

          default: 
             return DefWindowProc(hWnd,uMsg,wParam,lParam); return DefWindowProc (hWnd, uMsg, wParam, lParam); 
       } ) 
       return FALSE; return FALSE; 
    } ) 

   (c) Microsoft Corporation 1997, All Rights Reserved. (c) Microsoft Corporation 1997, All Rights Reserved. 
   Contributions by Rob Caplan, Microsoft Corporation Contributions by Rob Caplan, Microsoft Corporation 


 先頭へ戻る Back to the top 
関連情報 Related Information この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 183107 (http://support.microsoft.com/kb/183107/EN-US/ ) (最終更新日 1999-02-22) をもとに作成したものです。 Microsoft Corporation on this article are available from the Knowledge Base Article ID 183107 (http://support.microsoft.com/kb/183107/EN-US/) (Last Updated 1999-02-22) based on what you think. 


 先頭へ戻る Back to the top 

--------------------------------------------------------------------------------

この資料は以下の製品について記述したものです。 This article was first listed in the following table. 
Microsoft Platform SDK January 2000 Edition Microsoft Platform SDK January 2000 Edition 
Microsoft Windows NT Server 3.5 Microsoft Windows NT Server 3.5 
Microsoft Windows NT Server 3.51 Microsoft Windows NT Server 3.51 
Microsoft Windows NT Server 4.0 Standard Edition Microsoft Windows NT Server 4.0 Standard Edition 
Microsoft Windows NT Workstation 3.5 Microsoft Windows NT Workstation 3.5 
Microsoft Windows NT Workstation 3.51 Microsoft Windows NT Workstation 3.51 
Microsoft Windows NT Workstation 4.0 Developer Edition Microsoft Windows NT Workstation 4.0 Developer Edition 
Microsoft Windows 95 Microsoft Windows 95 
Microsoft Windows 98 Standard Edition Microsoft Windows 98 Standard Edition 
Microsoft Windows 2000 Advanced Server Microsoft Windows 2000 Advanced Server 
Microsoft Windows 2000 Server Microsoft Windows 2000 Server 
Microsoft Windows 2000 Professional Microsoft Windows 2000 Professional 
 先頭へ戻る Back to the top 
キーワード: Keywords:  kbinfo trackmouseevent KB183107 kbinfo trackmouseevent KB183107  

 先頭へ戻る Back to the top 
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" "Microsoft Knowledge Base that contains the information is provided by the base warranty of any kind. Microsoft Corporation and its affiliates, including times for this problem, explicitly in Brazil, and more. In addition, Microsoft Corporation and their affiliates, to use of the information contained in this document, the accuracy, truth, and to Reproduce section also. Microsoft Corporation, or advice of any information provided orally or in writing the power of these are not the top, click the above disclaimer and do not . Microsoft Corporation, the reliability of these are direct, indirect, accidental, consequential damage, lost profits, punitive damages, including damages for loss of or all the circumstances not be responsible for any. (Microsoft Corporation, then you will have the possibility of such damages the reliability of the computer.) accidental or consequential damage In the current exemption of liability for damages, you may not click OK. Microsoft is a registered trademark shown in the name of the product represented by the top Keywords: Other We may have to skip the show, please OK. " 

The only article like it I could find is this one, translated from japanese

WM_MOUSELEAVE notification on msdn now.

One Comment

  1. WM_MOUSELEAVE doesn't work! .Thanks for nice post.I added to my twitter.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: