求::UpdateLayeredWindow用法

asight 2011-08-01 01:38:13
我调用失败,不知道错在哪
BLENDFUNCTION blend = { AC_SRC_OVER, 0, /*SourceConstantAlpha*/0, AC_SRC_ALPHA };

HDC hdcDesk = ::GetDC(NULL);
HDC hdcMem = ::CreateCompatibleDC(hdcDesk);
RECT rectWnd;
GetWindowRect(&rectWnd);
int iWidth = rectWnd.right-rectWnd.left;
int iHeight = rectWnd.bottom-rectWnd.top;
HBITMAP hBmp = ::CreateCompatibleBitmap(hdcDesk,iWidth,iHeight);
::SelectObject(hdcMem, hBmp);

POINT p = {0,0};
::UpdateLayeredWindow(m_hWnd,hdcDesk, NULL,NULL,hdcMem,&p,0,&blend,ULW_ALPHA)

SelectObject之前的初始化 GetLastError都是0 句柄非NULL
SelectObject返回非零
最后的Update失败 不知道为什么

另外 国内的参数 第二个都是当前窗体的HDC 都是错的 应该是桌面HDC

求解





...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
asight 2011-08-02
  • 打赏
  • 举报
回复
该用法没有错 是之前调用了SetlayeredWindow造成的

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧