Microsoft KB Archive/899290

= When you move a Win32 application window over a DirectX application in Visual C++ .NET, the images in the window flash =

Article ID: 899290

Article Last Modified on 9/23/2005

-

APPLIES TO


 * Microsoft Visual C++ .NET 2003 Standard Edition
 * Microsoft Visual C++ .NET 2002 Standard Edition

-





SYMPTOMS
When you move a Win32 application window over a Microsoft DirectX application in Microsoft Visual C++ .NET, the images in the window flash.



CAUSE
This behavior may occur when all the following conditions are true:
 * You create the window by using the CreateWindowEx function, and the dwExStyle parameter is set to WS_EX_LAYERED.
 * The Win32 application calls the SetLayeredWindowAttributes function to set the opacity and transparency color key of the window.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



Steps to reproduce the behavior
 Create a Visual C++ Win32 project in Microsoft Visual Studio .NET. Create a main window by using the CreateWindowEx function. Set the dwExStyle parameter to WS_EX_LAYERED.  Call the SetLayeredWindowAttributes function. The code is similar to the following. BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {   HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindowEx(               WS_EX_LAYERED, // extended window style                szWindowClass, // registered class name                szTitle, // window name                WS_OVERLAPPEDWINDOW, // window style                CW_USEDEFAULT, // horizontal position of window                0, // vertical position of window                CW_USEDEFAULT, // window width                0, // window height                NULL, // handle to parent or owner window                NULL, // menu handle or child identifier                hInstance, // handle to application instance                NULL // window-creation data            ); if (!hWnd) {   return FALSE; }   SetLayeredWindowAttributes(hWnd,0,128,LWA_ALPHA); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; }  On a computer that is running Microsoft Windows 2000 or Microsoft Windows XP, run the application that you created, and then run a DirectX application. Move the window that you created in step 2 over the DirectX application. The images in the window flash.

Note This behavior does not occur when you run Graphics Device Interface (GDI) applications that repeatedly paint images in procedures.</ol>

Keywords: kbtshoot kbprb kbcode KB899290

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.