Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не удается найти класс окна, Ошибка 1407 
V
    Опции темы
bronislav
Дата 9.5.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Регистрирую класс окна так

Код

bool GraphicsWindow::registerWindowClass()
{
    if(isWindowClassRegistred)
        return true;
    
    std::ostringstream str;
    str << "Graphics Window for Win32 [" << GetCurrentProcessId() << "]";
    
    wndClassName = str.str();
    
    HINSTANCE hinstance = GetModuleHandle(NULL);
    
    WNDCLASSEX wc;
    //WNDCLASS wc;
    
    wc.style                    = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.lpfnWndProc        = (WNDPROC) WndProc;
    wc.cbClsExtra            = 0;
    wc.cbWndExtra            = 0;
    wc.hInstance            = hinstance;
    wc.hIcon                    = NULL;
    wc.hCursor                = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = NULL;
    wc.lpszMenuName        = NULL;
    wc.lpszClassName    = wndClassName.c_str();
    wc.lpszClassName    = "OpenGL";
    
    if( !RegisterClassEx(&wc) )
    {
        std::cerr << "GraphicsWindow::registerWindowClass - Unable to register window class ["
                    << GetLastError() <<"]" << std::endl;
        isWindowClassRegistred = false;
    }
    else
        isWindowClassRegistred = true;
    return isWindowClassRegistred;
}


Создаю окно так

Код

bool GraphicsWindow::createWindow()
{
    DWORD windowStyle;
    DWORD windowExtendedStyle;
    
    windowStyle = WS_OVERLAPPEDWINDOW;
    windowExtendedStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
    
    hwnd = CreateWindowEx(
            windowExtendedStyle,
            //wndClassName.c_str(),
            "OpenGL",
            windowTitle.c_str(),
            
            //windowStyle |
            WS_POPUP |
            WS_CLIPCHILDREN |
            WS_CLIPSIBLINGS,
            
            xPosition, yPosition,
            xSize, ySize,
            
            NULL,
            NULL,
            GetModuleHandle(NULL),
            NULL);
    
    if( !hwnd )
    {
        std::cerr << "GraphicsWindow::createWindow() - Unable to create window ["
                    << GetLastError() << "]" << std::endl;
        destroyWindow();
        return false;
    }
    return true;
}


Использую так
Код

if(registerWindowClass() == false)
    {
        std::cerr << "GraphicsWindow::start() - window class not registered ==> can't continue"
                    << std::endl;
        return;
    }
    
    //setScreenSettings();
    
    if(createWindow() == false)
    {
        std::cerr << "GraphicsWindow::start() - window not created ==> can't continue"
                    << std::endl;
        return;
    }



Но окно не создается. Судя по номеру ошибки (1407) - невозможно найти класс окна. В чем может выть проблема?

Полные исходники в приложении.
Использую MinGW

Это сообщение отредактировал(а) bronislav - 9.5.2008, 00:14

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  template.zip 681,72 Kb


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
586
Дата 9.5.2008, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



ошибся...

Это сообщение отредактировал(а) 586 - 9.5.2008, 00:20
PM   Вверх
bronislav
Дата 9.5.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Создается такое впечатление, что не регистрируется класс окна.

Потому что, после неуспешного создания окна, я пытаюсь разрегистрировать только что зарегистрированный класс, но генерируется ошибка 1411 - Класс не существует.

Даже не знаю, что делать!




--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
bronislav
Дата 9.5.2008, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Уже решил проблему

Надо было использовать обычные класс окна, а не расширенный


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


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

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


 




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


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

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