Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запретить изменять размеры окна, OpenGL 
:(
    Опции темы
Elday
Дата 28.3.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как запретить пользователю изменять размер окна. 
Даже если убрать 
Код

glutReshapeFunc(reshape);

то пользователь все равно может менять размеры.
Думаю, это что-то в windows.h делает так, но не знаю что.
PM MAIL   Вверх
Alexeis
Дата 28.3.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Elday, нужно сделать диалоговое окно без возможности менять размеры. Это задается в параметрах создания окна.

Добавлено через 5 минут и 23 секунды
3й параметр в CreateWindow. Если там не стоит флаг WS_SIZEBOX, WS_THICKFRAME, WS_OVERLAPPEDWINDOW, WS_TILEDWINDOW, то окно нельзя растягивать. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Elday
Дата 28.3.2009, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я создаю окно через 
Код

glutCreateWindow("OpenGL");


Поэтому другой вопрос, как создать окно средствами windows, которое бы полностью соответствовало glut окну ?


// Нашел на http://nehe.gamedev.net , похоже это занятие не на один день  smile 

Это сообщение отредактировал(а) Elday - 28.3.2009, 19:03
PM MAIL   Вверх
Alexeis
Дата 29.3.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Elday, можно взять и оттуда пример
Вот это будет окно с рамкой и изменяющимися размерами
Код

    hWnd = CreateWindow(
    "OpenGL WinClass",
    "Jeff Molofee's GL Code Tutorial ... NeHe '99",    // Заголовок вверху окна

    WS_POPUP |
    WS_CLIPCHILDREN |
    WS_CLIPSIBLINGS | WS_SIZEBOX,

    50, 50,            // Позиция окна на экране
    640, 480,        // Ширина и высота окна

    NULL,
    NULL,
    hInstance,
    NULL);


Вот это окно без рамки с размерами.
Код

    hWnd = CreateWindow(
    "OpenGL WinClass",
    "Jeff Molofee's GL Code Tutorial ... NeHe '99",    // Заголовок вверху окна

    WS_POPUP |
    WS_CLIPCHILDREN |
    WS_CLIPSIBLINGS,

    50, 50,            // Позиция окна на экране
    640, 480,        // Ширина и высота окна

    NULL,
    NULL,
    hInstance,
    NULL);


Добавлено @ 12:24
система управления окнами glut кросплатформенная и потому весьма ограниченная см. 
http://www.opengl.org/documentation/specs/...ec3/node15.html

Для нормальной работы с окнами лучше воспользоваться средставми Windows. 



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Rickert
Дата 30.3.2009, 06:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Я всегда говорил людям, чтобы они не пользовались glut'ом smile


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gryphon
Дата 1.5.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

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



Alexeis, а что в этом коде есть hInstance? Что туда пихать?)

Добавлено @ 10:51
И ещё он ругается вот так:
Код

1>error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [16]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


Никакие преобразования типов не помогают...

Это сообщение отредактировал(а) Gryphon - 1.5.2009, 10:54
PM   Вверх
Alexeis
Дата 4.5.2009, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Gryphon, наверное просто проект юникодный.

Цитата(Gryphon @  1.5.2009,  09:41 Найти цитируемый пост)
а что в этом коде есть hInstance? Что туда пихать?)

Базовый адрес приложения. Он передается в WinMain.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Gryphon
Дата 4.5.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

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



Цитата(Alexeis @  4.5.2009,  12:12 Найти цитируемый пост)
Gryphon, наверное просто проект юникодный.

Ага. Спасибо, разобрался)

Цитата(Alexeis @  4.5.2009,  12:12 Найти цитируемый пост)
Базовый адрес приложения. Он передается в WinMain. 

А вот тут сложнее. У меня вообще нет WinMain — приложение изначально консольное(
В общем, я  smile  smile 
Как сделать из
Код

glutInit               ( &argc, argv );
glutInitWindowSize     ( init_widht, init_height );
glutInitWindowPosition ( init_x, init_y );
glutInitDisplayMode    ( GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow       ( title.c_str() );


Окно с запрещённым изменением размеров. Заранее спасибо)

Это сообщение отредактировал(а) Gryphon - 4.5.2009, 11:58
PM   Вверх
Alexeis
Дата 4.5.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Gryphon @  4.5.2009,  10:54 Найти цитируемый пост)
У меня вообще нет WinMain — приложение изначально консольное(

Тогда его можно получить так 
Код

HMODULE Hinstance = GetModuleHandle(NULL);



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Gryphon
Дата 4.5.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

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



Alexeis, хм, а будет ли это всё работать с glut'ом? Потому что пока что вылетает с ошибкой(
PM   Вверх
Alexeis
Дата 4.5.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Gryphon @  4.5.2009,  11:27 Найти цитируемый пост)
а будет ли это всё работать с glut'ом?

  Смотря что. Если правильно делать, то работать должно, если делать ошибки, то программа будет вылетать  smile .

Код

glutInitWindowSize     ( init_widht, init_height );
glutInitWindowPosition ( init_x, init_y );
glutInitDisplayMode    ( GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow       ( title.c_str() );


и 

Код

 hWnd = CreateWindow(
    "OpenGL WinClass",
    "Jeff Molofee's GL Code Tutorial ... NeHe '99",    // Заголовок вверху окна
    WS_POPUP |
    WS_CLIPCHILDREN |
    WS_CLIPSIBLINGS,
    50, 50,            // Позиция окна на экране
    640, 480,        // Ширина и высота окна
    NULL,
    NULL,
    hInstance,
    NULL);


Делают ту же работу. От чего-то все же придется отказаться. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Gryphon
Дата 4.5.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

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



Alexeis, код:
Код

    glutInit                ( &argc, argv );
/*  glutInitWindowSize        ( init_widht, init_height );
    glutInitWindowPosition    ( init_x, init_y );
    glutInitDisplayMode        ( GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow        ( title.c_str() );
*/
    HMODULE h_instance = GetModuleHandle ( NULL );

    HWND hWnd = CreateWindow ( "OpenGL WinClass",
        title.c_str(),                // Заголовок вверху окна
        WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_SIZEBOX,
        init_x, init_y,                // Позиция окна на экране
        init_widht, init_height,    // Ширина и высота окна
        NULL, NULL, h_instance,  NULL );


Ошибка тут.

Это сообщение отредактировал(а) Gryphon - 4.5.2009, 14:39
PM   Вверх
Alexeis
Дата 6.5.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



от glutDisplFunct видимо прийдется отказаться, ведь оконная система родная работает, а не глутовская


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Gryphon
Дата 6.5.2009, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

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



Цитата(Alexeis @  6.5.2009,  01:12 Найти цитируемый пост)
от glutDisplFunct видимо прийдется отказаться, ведь оконная система родная работает, а не глутовская 


Цитата(Gryphon @  4.5.2009,  13:27 Найти цитируемый пост)
а будет ли это всё работать с glut'ом?

Ну так я ж об этом и спрашивал... 8((

Это сообщение отредактировал(а) Gryphon - 6.5.2009, 00:24
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




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


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

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