VC++ UpdateLayeredWindow
2009-04-08 19:02
483 查看
UpdateLayeredWindow Function
The UpdateLayeredWindow function updates the position, size, shape, content, and translucency of a layered window.
Syntax
Parameters
hwnd [in] Handle to a layered window. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function. hdcDst [in]
Handle to a device context (DC) for the screen. This handle is obtained by specifying NULL when calling the function. It is used for palette color matching when the window contents are updated. If hdcDst isNULL, the default palette will be used.
If hdcSrc is NULL, hdcDst must be NULL.
pptDst [in] Pointer to a POINT structure that specifies the new screen position of the layered window. If the current position is not changing, pptDst can be NULL. psize [in] Pointer to a SIZE structure that specifies the new size of the layered window. If the size of the window is not changing, psize can be NULL. If hdcSrc is NULL, psize must be NULL. hdcSrc [in] Handle to a DC for the surface that defines the layered window. This handle can be obtained by calling the CreateCompatibleDC function. If the shape and visual context of the window are not changing, hdcSrc can be NULL. pptSrc [in] Pointer to a POINT structure that specifies the location of the layer in the device context. If hdcSrc is NULL, pptSrc should be NULL. crKey [in] COLORREF structure that specifies the color key to be used when composing the layered window. To generate a COLORREF, use the RGB macro. pblend [in] Pointer to a BLENDFUNCTION structure that specifies the transparency value to be used when composing the layered window. dwFlags [in] This parameter can be one of the following values.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The source DC should contain the surface that defines the visible contents of the layered window. For example, you can select a bitmap into a device context obtained by calling the CreateCompatibleDC function.
An application should call SetLayout on the hdcSrc device context to properly set the mirroring mode. SetLayout will properly mirror all drawing into an HDC while properly preserving text glyph and (optionally) bitmap direction order. It cannot modify drawing directly into the bits of a device-independent bitmap (DIB). For more information, see Window Layout and Mirroring.
The UpdateLayeredWindow function maintains the window's appearance on the screen. The windows underneath a layered window do not need to be repainted when they are uncovered due to a call to UpdateLayeredWindow, because the system will automatically repaint them. This permits seamless animation of the layered window.
UpdateLayeredWindow always updates the entire window. To update part of a window, use the traditional WM_PAINT and set the blend value using SetLayeredWindowAttributes.
For best drawing performance by the layered window and any underlying windows, the layered window should be as small as possible. An application should also process the message and re-create its layered windows when the display's color depth changes.
For more information, see Layered Windows.
The UpdateLayeredWindow function updates the position, size, shape, content, and translucency of a layered window.
Syntax
BOOL UpdateLayeredWindow( HWND hwnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags );
Parameters
hwnd [in] Handle to a layered window. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function. hdcDst [in]
Handle to a device context (DC) for the screen. This handle is obtained by specifying NULL when calling the function. It is used for palette color matching when the window contents are updated. If hdcDst isNULL, the default palette will be used.
If hdcSrc is NULL, hdcDst must be NULL.
pptDst [in] Pointer to a POINT structure that specifies the new screen position of the layered window. If the current position is not changing, pptDst can be NULL. psize [in] Pointer to a SIZE structure that specifies the new size of the layered window. If the size of the window is not changing, psize can be NULL. If hdcSrc is NULL, psize must be NULL. hdcSrc [in] Handle to a DC for the surface that defines the layered window. This handle can be obtained by calling the CreateCompatibleDC function. If the shape and visual context of the window are not changing, hdcSrc can be NULL. pptSrc [in] Pointer to a POINT structure that specifies the location of the layer in the device context. If hdcSrc is NULL, pptSrc should be NULL. crKey [in] COLORREF structure that specifies the color key to be used when composing the layered window. To generate a COLORREF, use the RGB macro. pblend [in] Pointer to a BLENDFUNCTION structure that specifies the transparency value to be used when composing the layered window. dwFlags [in] This parameter can be one of the following values.
ULW_ALPHAUse pblend as the blend function. If the display mode is 256 colors or less, the effect of this value is the same as the effect of ULW_OPAQUE.
ULW_COLORKEYUse crKey as the transparency color.
ULW_OPAQUEDraw an opaque layered window. If hdcSrc is NULL, dwFlags should be zero.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The source DC should contain the surface that defines the visible contents of the layered window. For example, you can select a bitmap into a device context obtained by calling the CreateCompatibleDC function.
An application should call SetLayout on the hdcSrc device context to properly set the mirroring mode. SetLayout will properly mirror all drawing into an HDC while properly preserving text glyph and (optionally) bitmap direction order. It cannot modify drawing directly into the bits of a device-independent bitmap (DIB). For more information, see Window Layout and Mirroring.
The UpdateLayeredWindow function maintains the window's appearance on the screen. The windows underneath a layered window do not need to be repainted when they are uncovered due to a call to UpdateLayeredWindow, because the system will automatically repaint them. This permits seamless animation of the layered window.
UpdateLayeredWindow always updates the entire window. To update part of a window, use the traditional WM_PAINT and set the blend value using SetLayeredWindowAttributes.
For best drawing performance by the layered window and any underlying windows, the layered window should be as small as possible. An application should also process the message and re-create its layered windows when the display's color depth changes.
For more information, see Layered Windows.
相关文章推荐
- VC++调用UpdateLayeredWindow实现半透明窗体【转】
- VC++调用UpdateLayeredWindow实现半透明窗体【转】
- VC++调用UpdateLayeredWindow实现半透明窗体【转】
- DUI-分层窗口两种模式(SetLayeredWindowAttributes和UpdateLayeredWindow两种方法各有利弊)
- GDI+ 透明窗口.UpdateLayeredWindow
- 利用UpdateLayeredWindow函数制作透明窗口时BMP的Alpha通道的问题
- VC++ UpdateLayeredWindowIndirect
- WIN32无边框窗体的缩放、移动与WM_NCHITTEST消息&&UpdateLayeredWindow重要心得
- 使用UpdateLayeredWindow的窗口在某些系统上显示不出来的一个可能原因
- c# UpdateLayeredWindow异形窗口
- UpdateLayeredWindow和SetLayeredWindowAttributes
- UpdateLayeredWindow是炫效果的关键
- Layered windows and UpdateLayeredWindow 分层窗口
- 利用BMP通道和UpdateLayeredWindow制作边缘透明不规则窗口
- 一个用UpdateLayeredWindow实现窗体半透明的delphi的代码-The realization of a form with translucent UpdateLayeredWindow code delphi
- How to use UpdateLayeredWindow with UI Controls like buttons etc?:)
- UpdateLayeredWindow和SetLayeredWindowAttributes (我记得转过的啊啊啊啊啊)
- UpdateLayeredWindow实现自定义透明窗口
- [GDI+]16位色下UpdateLayeredWindow失败
- 使用UpdateLayeredWindow 创建透明窗体