-
XResizeWindow 实现 窗口的移动
int i; /* start shrinking our window in a loop. */ for (i=0; i<40; i++) { win_width -= 3; win_height -= 3; XResizeWindow(display, win, win_width, win_height); XFlush(display); usleep(20000); }
-
XMoveWindow 移动窗口
- 通过 窗口属性 得到相对于父窗口的 x,y 值
XGetWindowAttributes(display, win, &win_attr); x = win_attr.x; y = win_attr.y;
- 获取父窗口
/* finally, make the query for the above values. */ XQueryTree(display, win, &root_win, &parent_win, &child_windows, &num_child_windows);
- 获取我们当前窗口与屏幕的相对 scr_x,scr_y
XTranslateCoordinates(display, parent_win, win_attr.root, x, y, &scr_x, &scr_y, &child_win);
- 窗口移动
for (i=0; i<40; i++) { scr_x -= 3; XMoveWindow(display, win, scr_x, scr_y); XFlush(display); usleep(20000); }
- XIconifyWindow 最小化
- 窗口最小化
XIconifyWindow(display, win, DefaultScreen(display)); XFlush(display);
- 窗口恢复
XMapWindow(display, win); XFlush(display);