WNDCLASS Wnd1;
hInst = GetModuleHandle(NULL);
hInstance=hInst;
Wnd1.cbClsExtra=0;
Wnd1.cbWndExtra=0;
Wnd1.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);
Wnd1.hCursor=LoadCursor(NULL,IDI_APPLICATION);
Wnd1.hIcon=LoadIcon(NULL, IDI_APPLICATION);
Wnd1.hInstance=hInstance;
Wnd1.lpfnWndProc=WndProc1;
Wnd1.lpszClassName="OkNo";
Wnd1.lpszMenuName="NULL";
Wnd1.style=CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
RegisterClass(&Wnd1);
hWnd=CreateWindow(
Wnd1.lpszClassName,
"AAA",
WS_OVERLAPPEDWINDOW,
0,0,
500,500,
NULL,NULL,
hInstance,
NULL);
hDC = GetDC(hWnd);
GetDC возвращает некорректный результат
для этого, как я понимаю, необходимо получить HDC и собственно HGLRC.
Регистрирую класс главного окна, создаю окно, затем вызываю GetDC:
Код:
при просмотре значений hWnd через раз равно нулю(:confused:)
а главная проблема - (при любом значении hWnd) смотрим значение hDC:
unused CXX0030: Error: expression cannot be evaluated
:confused:
почему не NULL, ведь по идее если GetDC не может получить дескриптор устройства, должна возвращать NULL?
это при отладке скорее всего показывает такое и это не реальное значение hDC. такое бывает, например, при включенной оптимизации, например когда hDC дальше по коду нигде не используется...
кроме того, далее hdc используется:
Код:
hRC = wglCreateContext( hDC );
wglMakeCurrent( hDC, hRC );
ShowWindow(hWnd,nCmdShow);
ResizeGLSzene(500,500);
InitGL();
while(GetMessage(&msg,NULL,NULL,NULL)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
wglMakeCurrent( hDC, hRC );
ShowWindow(hWnd,nCmdShow);
ResizeGLSzene(500,500);
InitGL();
while(GetMessage(&msg,NULL,NULL,NULL)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
Цитата: FloyDos
Код:
Wnd1.hCursor=LoadCursor(NULL,IDI_APPLICATION);
А не IDC_APPLICATION?Курсор,всё-таки
Цитата: FloyDos
Wnd1.lpszMenuName="NULL";[/CODE]
Может,NULL без кавычек?Я так понимаю,меню нету,а тут ерунда получается
P.S.На самом деле,если hWnd==0,то GetDC всё равно получит дескриптор.Нет,естественно,не того окна,которое вы не смогли создать:),а рабочего стола.Так-то
Цитата:
Note This function has been superseded by the LoadImage function.
используй WNDCLASSEX и глюки исчезнут...
Цитата: @pixo $oft
Может,NULL без кавычек?Я так понимаю,меню нету,а тут ерунда получается
да, он и был без кавычек, ибо его не должно быть по идее.
дело в том, что опять там был гал при просмотре значений поля меню структуры WNDCLASS при отладке, я поэтому попробовала просто имя меню поставить и все. Я так понимаю, тут та же проблема была, типа среда не отображает настоящее значение; это же не значит, что оно неверное...