Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XCreateSimpleWindow. Положение окна не соответству, Ubuntu 10.04? gcc 4.4.3, версию Х не зна 
:(
    Опции темы
DTF
Дата 29.7.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Здравствуйте.
Пытаюсь сделать простенькое Х-окно.
Использую функцию XCreateSimpleWindow.
Почему-то окно появляется не по тем координатам, которые я передал в функцию, а в центре экрана :(

Подскажите, пожалуйста, что я делаю не так.

Вот код:

Код

      #include <X11/Xlib.h>
      #include <stdio.h>
       
      int main()
      {
       
          Display* main_display;
       
          main_display = XOpenDisplay( NULL );
          if( !main_display )
          {
              printf( "Cannot open main display!\n" );
              return 1;
          }
       
          int display_num = XDefaultScreen( main_display );
          Window main_wnd =
              XCreateSimpleWindow( main_display, RootWindow( main_display, display_num ),
                                       0, 0, 100, 100, 1,
                                   BlackPixel(main_display, display_num),
                                   WhitePixel(main_display, display_num )
                                 );
       
          Atom wm_delete_window = XInternAtom( main_display, "WM_DELETE_WINDOW", False );
          Atom wm_protocols = XInternAtom( main_display, "WM_PROTOCOLS", False );
          XSetWMProtocols( main_display, main_wnd, &wm_delete_window, 1 );
       
          XMapWindow( main_display, main_wnd );
       
          XEvent e;
          bool done = false;
          while( !done )
          {
              XNextEvent( main_display, &e );
       
              switch( e.type )
              {
              case ClientMessage:
                    if( e.xclient.message_type == wm_protocols && e.xclient.data.l[0] == (long)wm_delete_window )
                    {
                        printf( "WM_DELETE_WINDOW\n" );
                        done = true;
                    }
       
                    break;
       
       
              default :
                  printf( "Unknown event #%d\n", e.type );
              }
          }
       
       
          XDestroyWindow( main_display, main_wnd );
       
          XCloseDisplay( main_display );
       
          printf( "done\n" );
       
          return 0;
      }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.