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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему hWnd == NULL ???? где ошибка.. 
V
    Опции темы
Partizan
Дата 14.2.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



всем привет.... собсна я новичёк в VS.... поэтому сразу вопрос...
есть следующий код(в функции InitInstance)

Код

   hWnd = CreateWindow(
        "OpenGL WinClass",
        "My First OpenGL app", // Заголовок вверху окна

        WS_POPUP |
        WS_CLIPCHILDREN |
        WS_CLIPSIBLINGS,

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

        NULL,
        NULL,
        hInstance,
        NULL);


почему CreateWindow может возвращать NULL???
з.ы. всё....мой идиотский вопрос снят с повестки дня....окошко-то не создаётся...

Это сообщение отредактировал(а) Partizan - 14.2.2006, 21:03


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Fin
Дата 14.2.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Как ты определил этот класс OpenGL WinClass? Да и пробел в определении класса не желателен.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Partizan
Дата 14.2.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Fin,
Код

ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASS wcex;

    //wcex.cbSize = sizeof(WNDCLASS); 

    wcex.style            = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon            = LoadIcon(hInstance, (LPCTSTR)IDI_LAB1);
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName    = NULL;
    wcex.lpszClassName    = szWindowClass;
    //wcex.hIconSm        = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

    return RegisterClass(&wcex);



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Fin
Дата 14.2.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Вроде не вижу сушественных ошибок. Вопрос, ты перехватывал сообшение WM_CREATE и как?
Там нужно возврашать 0, тогда окно будет создаваться дальше. Если вернуть -1, тогда окно не создастся.
Добавлено @ 21:16
Если ты используеш макросы, тогда нужно делать наоборот


--------------------
Пролетал мимо.
PM MAIL   Вверх
Partizan
Дата 14.2.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



нет....в структуре switch в WndProc WM_CREATE не обрабатывал...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Fin
Дата 14.2.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Сбрось весь кусок текста. Чтобы можно было пошупать его на своей машине.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Fin
Дата 14.2.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Цитата(Partizan @ 14.2.2006, 19:41 Найти цитируемый пост)
з.ы. всё....мой идиотский вопрос снят с повестки дня....окошко-то не создаётся...

Только сейчас заметил. Окошко создается?


--------------------
Пролетал мимо.
PM MAIL   Вверх
Partizan
Дата 15.2.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



нет....окошко не создаётся....


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Fin
Дата 15.2.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Вот модуль-шаблон WinAPI программы, который у меня прекрасно работает.
Код

//===========================================================================
// Name:         Main
// Avtor :       
// Description : Basic Window of Library with WinAPI
//===========================================================================

//---------------------------------------------------------------------------
#include <windows.h>
#include <windowsx.h>
//---------------------------------------------------------------------------

static HWND MainWindow;
char szAppName[] = "LibraryApp";
char szTitle[] = "Library Sample Application";

bool Register(HINSTANCE);
HWND Create(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void OnDestroy(HWND hwnd);

//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE hInst,
               HINSTANCE hPrevInst,
               LPSTR CmdParam,
               int nCmdShow)
{
   MSG Msg;

   if (!Register(hInst))
       return false;
   MainWindow=Create(hInst,nCmdShow);
   if (MainWindow==0)
       return false;

   while (GetMessage(&Msg,NULL,0,0))
      {
       TranslateMessage(&Msg);
       DispatchMessage(&Msg);
      }
   return Msg.wParam;
}
//---------------------------------------------------------------------------
bool Register(HINSTANCE hInst)
{
   WNDCLASS wc;

   wc.style         = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc   = (WNDPROC) WndProc;
   wc.cbClsExtra    = 0;
   wc.cbWndExtra    = 0;
   wc.hInstance     = hInst;
   wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
   wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground = (HBRUSH) (1);
   wc.lpszMenuName  = NULL;
   wc.lpszClassName = szAppName;

   return (RegisterClass(&wc) !=0);

}

HWND Create(HINSTANCE hInst, int nCmdShow)
{
   HWND hWindow = CreateWindow(szAppName, szTitle,
                               WS_OVERLAPPEDWINDOW,
                               CW_USEDEFAULT, CW_USEDEFAULT,
                               CW_USEDEFAULT, CW_USEDEFAULT,
                               NULL, NULL, hInst, NULL);
   if (hWindow != NULL)
       {
        ShowWindow(hWindow, nCmdShow);
        UpdateWindow(hWindow);
       }
   return hWindow;
}

LRESULT CALLBACK WndProc(HWND hWindow, UINT Message,
                         WPARAM wParam, LPARAM lParam)
{
   switch(Message)
      {
       HANDLE_MSG(hWindow, WM_DESTROY, OnDestroy);
       default:
          return DefWindowProc(hWindow, Message, wParam, lParam);
      }
}


void OnDestroy(HWND hwnd)
{
   PostQuitMessage(0);
}

//---------------------------------------------------------------------------


Это сообщение отредактировал(а) Fin - 15.2.2006, 17:36


--------------------
Пролетал мимо.
PM MAIL   Вверх
Partizan
Дата 16.2.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



всё....проблему уже решил самостоятельно smile


Fin, тебе всё равно спасибо за помощь smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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