GTK + -2.0获取窗口背景pixmap

时间:2013-07-26 23:25:04

标签: gtk x11

我正在寻找一种使用GTK + -2.0

存储窗口当前背景像素图的方法

我找到了这个函数:gdk_window_set_back_pixmap()允许将像素图设置为背景,但我找不到任何可以让我做反向的东西 - 也就是说,得到背景像素图。

2 个答案:

答案 0 :(得分:0)

你找不到这样的功能,因为没有。来自X Windows FAQ

  

主题:174) XGetWindowAttributes可以获得窗口的背景   像素/像素映像?

     

没有。设置后,窗口的背景像素或像素图不能   由客户重新阅读。这样做的原因是客户可以创建一个   pixmap,将其设置为窗口的背景像素图,然后自由   像素图。窗口保留了这个背景,但像素图本身就是   销毁。如果您确定窗口有背景像素(不是   pixmap),您可以使用XClearArea()将区域清除为背景   颜色,然后使用XGetImage()读回该像素。但是,这个   动作改变窗口的内容,它会受到种族的影响   暴露的条件。 [NCD和Stuart的Dave Lemke提供   太阳的标记]

由于GTK是X11基元的一个相当简单的包装器,因此它不能提供超出X11所提供的功能。

答案 1 :(得分:0)

我可以推荐这种方法

  • 使用以下属性创建相同大小的子窗口
    • background pixmap是ParentRelative
    • GCTileStipXOrigin和GCTileStipYOrigin为零
    • GCFillStyle是FillTiled
  • 不要映射
  • 使用XClearWindow
  • 清除它
  • 使用XGetImage获取其内容

可能会工作: - )