| 
 | 
 
 楼主 |
发表于 2006-12-30 13:24:05
|
显示全部楼层
 
 
 
2.   XWindowAttributes; 
  typedef struct { 
        int x, y;                        /* location of window */ 
        int width, height;                /* width and height of window */ 
        int border_width;                /* border width of window */ 
        int depth;                        /* depth of window */ 
        Visual *visual;                        /* the associated visual structure */ 
        Window root;                        /* root of screen containing window */ 
        int class;                        /* InputOutput, InputOnly*/ 
        int bit_gravity;                /* one of the bit gravity values */ 
        int win_gravity;                /* one of the window gravity values */ 
        int backing_store;                /* NotUseful, WhenMapped, Always */ 
        unsigned long backing_planes;        /* planes to be preserved if possible */ 
        unsigned long backing_pixel;        /* value to be used when restoring planes */ 
        Bool save_under;                /* boolean, should bits under be saved? */ 
        Colormap colormap;                /* color map to be associated with window */ 
        Bool map_installed;                /* boolean, is color map currently installed*/ 
        int map_state;                        /* IsUnmapped, IsUnviewable, IsViewable */ 
        long all_event_masks;                /* set of events all people have interest in*/ 
        long your_event_mask;                /* my event mask */ 
        long do_not_propagate_mask;        /* set of events that should not propagate */ 
        Bool override_redirect;                /* boolean value for override-redirect */ 
        Screen *screen;                        /* back pointer to correct screen */ 
} XWindowAttributes; 
 
有一定窗口设计经验的人都知道,一个窗口有很多描述。例如:x,y,width,height。一看就知道。我就不 
 
多说了。 
 
从图形库和窗口设计角度我要和大家谈谈 map_state。它有如下三个值。 
  * IsUnmapped 没有被允许显示; 
  * IsViewable 可以显示; 
  * IsUnviewable 这个窗口被设置为可显示;但是他的父辈不能显示。 
 
  当一个窗口被建立时他们的属性是:IsUnmapped;当使用XMapWindow,函数后表明该窗口可以显示。 
  属性应该:IsViewable。 但是当它判断它的父辈的map_state != IsViewable;他应该为: 
 
IsUnviewable。 |   
 
 
 
 |