qq_34537052 2018-01-05 10:52 采纳率: 0%
浏览 3074
已结题

在win10桌面窗口层的workerw嵌入应用,黑色像素变为透明

在写c#程序
总之使用如下方式将窗口设置为桌面workerw的子窗口

            EnumWindows(new Callback(Find_SHELLDLL_DefView), 0);
           IntPtr chiWnd = FindWindowEx(workerw,IntPtr.Zero,"TXMiniSkin", null);
           //IntPtr chiWnd = workerw;
           if(chiWnd==IntPtr.Zero)
           {
               chiWnd = workerw;

           }
                    SetParent(this.Handle,chiWnd);

                        //回调函数
        private IntPtr workerw = IntPtr.Zero;
        public bool Find_SHELLDLL_DefView(IntPtr hwnd,int lParam)
        {
            if(FindWindowEx(hwnd,IntPtr.Zero,"SHELLDLL_DefView",null)!=IntPtr.Zero)
            {
                workerw = hwnd;
                return false;
            }
            return true;
        }

图片说明
然后就出问题了,我的窗口貌似所有的黑色像素都变成了无色
图片说明
仔细看上面的图片,会发现窗口实际上遮住了图标但是背景层穿越过来了。像是图标穿上了隐身衣。
求解这种情况,希望解决黑色像素丢失的问题

  • 写回答

2条回答 默认 最新

  • laxing88 2018-01-05 14:25
    关注

    将该窗口的Owner设置成桌面的Shell 窗口。

    评论

报告相同问题?