按照MSDN上的介绍,该函数的作用是更新一个layered 窗口的位置、大小、形状、内容和透明度。现在建立一个对话框程序,在OnInitDialog()中添加如下代码:
BLENDFUNCTION blend;
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.AlphaFormat = 0;
blend.SourceConstantAlpha =100; ::UpdateLayeredWindow(
m_hWnd //本窗口句柄
, GetDC(m_hwnd)
, NULL //保持当前窗口未知不变
, NULL //保持当前窗口大小不变
, NULL
, NULL
, NULL
, &blend
, ULW_ALPHA);
为什么对话框不会自动透明到alpha值为100?上述代码目的只是简单的把窗口设为半透明,为什么看不到界面?当然把窗口设为半透明也可以简单的用
SetLayeredWindowAttributes(m_hwnd, 0, (255 * 70) / 100, LWA_ALPHA);
但是为了验证
UpdateLayeredWindow的作用所以上述代码特意用UpdateLayeredWindow来设置窗口的透明度。
为什么看不到界面?
BLENDFUNCTION blend;
blend.BlendOp = AC_SRC_OVER;
blend.BlendFlags = 0;
blend.AlphaFormat = 0;
blend.SourceConstantAlpha =100; ::UpdateLayeredWindow(
m_hWnd //本窗口句柄
, GetDC(m_hwnd)
, NULL //保持当前窗口未知不变
, NULL //保持当前窗口大小不变
, NULL
, NULL
, NULL
, &blend
, ULW_ALPHA);
为什么对话框不会自动透明到alpha值为100?上述代码目的只是简单的把窗口设为半透明,为什么看不到界面?当然把窗口设为半透明也可以简单的用
SetLayeredWindowAttributes(m_hwnd, 0, (255 * 70) / 100, LWA_ALPHA);
但是为了验证
UpdateLayeredWindow的作用所以上述代码特意用UpdateLayeredWindow来设置窗口的透明度。
为什么看不到界面?
解决方案 »
- _com_ptr_t类型的指针,->Release和.Release有什么区别?
- 懂windowsAPI的都可以进~~程序出错了,不知道哪里错了找了二天了也没有找到,请高手看看~~
- 请问什么时候使用用户界面线程啊?
- 谁有串口通信程序给我发一份, api的, 急
- 请问在vc中如向用vfp写的dll?
- WH_CALLWNDPROC挂钩时,为什么WM_SHOWWINDOW消息时,wParam一直为0
- 匈牙利命名法还能用吗?
- 如何返回 SafeArray,在 VC 里问了,没人理我
- 求救,写了个api的程序,编译出现如下错误,请各位大虾帮助
- 请教:存在大量连接时,TCP的负载到底比UDP大多少? 还有CSocket的效率如何?
- 【难为题挑战】信息监控系统的监控原理?
- combo 控件
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags
);
DWORD dwExStyle=GetWindowLong(hwnd,GWL_EXSTYLE);
if((dwExStyle&0x80000)!=0x80000)
SetWindowLong(hwnd ,GWL_EXSTYLE,dwExStyle^0x80000);2.如果你是用CreateWindowEx创建的窗体
dwExStyle定义成WS_EX_LAYERED