sunnyli3166 2014-12-02 01:34 采纳率: 36.4%
浏览 2977
已采纳

MFC view窗口透明设置

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

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

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

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

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

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

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

  • 写回答

1条回答

  • save4me 2014-12-02 02:43
    关注

    试一下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); //释放调模块句柄
    }
    }

    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑