读书人

对话框设置成全透明了如何捕获透明部

发布时间: 2012-12-21 12:03:49 作者: rapoo

对话框设置成全透明了,怎么捕获透明部分的鼠标消息?
部分代码如下:

C/C++ code
    CPaintDC dc(this); // device context for painting    BLENDFUNCTION blend;    blend.BlendOp = 0;    blend.BlendFlags = 0;    blend.AlphaFormat = 1;    blend.SourceConstantAlpha = 255;//原对话框设置为全透明    CRect rc;     GetClientRect(&rc);     ClientToScreen(&rc);    //窗体样式设为层级窗体    DWORD dwExStyle = GetWindowLong(m_hWnd,GWL_EXSTYLE);    SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^WS_EX_LAYERED);    HDC m_hdcMemory;    //绘制内存位图    ……    CImage ImgSrc;    ImgSrc.Load(m_strImage);    ImgSrc.Draw(m_hdcMemory,0,30);//将图片画到内存DC上    //使用UpdateLayerWindow进行窗口透明处理    SIZE sizeWindow = {rc.Width(),rc.Height()};    POINT ptWinPos = {rc.left, rc.top};    POINT ptSrc = {0, 0};    UpdateLayeredWindow(CDC::FromHandle(hdcTemp),&ptWinPos,&sizeWindow,        CDC::FromHandle(m_hdcMemory), &ptSrc, RGB(255,0,255), &blend, ULW_COLORKEY);


在透明区域点击鼠标左键,鼠标穿透到下层界面,无法响应本界面的鼠标点击事件。可是我想响应本界面的鼠标点击消息,我该怎么做?

读书人网 >VC/MFC

热点推荐