Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 899290 - Last Review: September 23, 2005 - Revision: 1.0
When you move a Win32 application window over a DirectX application in Visual C++ .NET, the images in the window flash
When you move a Win32 application window over a Microsoft DirectX
application in Microsoft Visual C++ .NET, the images in the window flash.
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.
Microsoft
has confirmed that this is a problem in the Microsoft products that are listed
in the "Applies to" 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.
APPLIES TO
- Microsoft Visual C++ .NET 2003 Standard Edition
- Microsoft Visual C++ .NET 2002 Standard Edition
| kbtshoot kbprb kbcode KB899290 |
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
Be the first to leave feedback, to help others about this knowledge base
article.
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please