sunnyli3166
sunnyli3166
采纳率36.4%
2014-12-02 01:34

MFC view窗口透明设置

已采纳

基于MFC单文档程序,设置2个工具按钮,一个使画图背景为默认模式,另一个使view窗口透明直接在桌面作图。。。默认启动时只显示工具栏

我的做法是开始设置 view Precreatewindow cs

cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW |CS_VREDRAW);// view背景透明 只显示工具栏。这个功能Ok。

onbutton1: 加载一个类似默认背景白色的图片。。这个功能也ok。

Onbutton2: 要怎么去实现透明,实现桌面画图呢。??

运行后要在button1 button2切换时窗口也切换。。

各位大侠指导下啊,,我是新手。。。万分感激!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • save4me save4me 7年前

    试一下MFC屏幕标记之透明窗体(一)
    //点击按钮实现窗口透明函数
    void CScreenMarkerDlg::OnButtonTransparent()
    {
    HINSTANCE hInst = GetModuleHandle("User32.dll");
    if (hInst)
    {
    //获取模块里的函数
    BOOL (WINAPI SetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD)=
    (BOOL (WINAPI
    ) (HWND,COLORREF,BYTE,DWORD))GetProcAddress(hInst,"SetLayeredWindowAttributes");
    //函数指针正确获取
    if(SetLayeredWindowAttributes)
    {
    //让窗口具透明的特性
    ::SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);

    //设置窗口透明。第4参数为1时,第二个参数是被透明的颜色
    SetLayeredWindowAttributes(m_hWnd,GetSysColor(COLOR_3DFACE),0,0x1);
    }
    FreeLibrary(hInst); //释放调模块句柄
    }
    }

    
    
    点赞 1 评论 复制链接分享

相关推荐