Programación General > Visual C++
Duda Sobre Hdc Y Visual C++
(1/1)
Diodo:
Hola a todos
Tengo una pequeña duda:
vereis estoy intentando aplicar una funcion que viene en el manual de OpenGL de la pagina de NeHe (que esta hecho sobre el API de windows ) en una aplicacion de SDI de visual C++ la funcion en cuestion es esta:
--- Código: Text --- GLvoid BuildFont(GLvoid) // Build Our Bitmap Font{ HFONT font; // Windows Font ID HFONT oldfont; // Used For Good House Keeping base = glGenLists(96); // Storage For 96 Characters font = CreateFont( -24, // Height Of Font 0, // Width Of Font 0, // Angle Of Escapement 0, // Orientation Angle FW_BOLD, // Font Weigh FALSE, // Italic FALSE, // Underline FALSE, // Strikeout ANSI_CHARSET, // Character Set Identifier OUT_TT_PRECIS, // Output Precision CLIP_DEFAULT_PRECIS;// Clipping Precision ANTIALIASED_QUALITY,// Output Quality FF_DONTCARE|DEFAULT_PITCH, "Courier New"); // Font Name oldfont = (HFONT)SelectObject(hDC, font); // Selects The Font We Want wglUseFontBitmaps(hDC, 32, 96, base); // Builds 96 Characters Starting At Character 32 SelectObject(hDC, oldfont); DeleteObject(font); }
como podeis ver al final hay dos funciones que utilizan hDC como parametro wglUseFontBitmaps y SelectObject.
Como puedo solucionar esto? hay algun equivalente al hDC en visual C++?
como ultimo recurso intente declarar el hDC como lo hacia en el ejemplo de la pagina
HDC hDC=NULL;
me reconoce el parametro y me compila pero no me muestra texto por pantalla que es lo que deberia hacer las funciones del ejemplo
Si podeis echarme una mano , mu agradecido :D
Davinia:
hola,
el HDC es el contexto de dispositivo.
Para obtener el contexto de dispositivo de una ventana (derivada de CView), tienes varias opciones (por lo que se):
1----
CClientDC *m_pDC = new CClientDC(this);
HDC m_hDC = m_pDC->GetSafeHdc();
en OnDestroy:
if (m_hDC)
delete m_hDC;
2----
m_hDC = ::GetDC(mhWnd);
En ondrestroy:
ReleaseDC(m_hWnd, m_hDC);
por cierto, si trabajas con opengl tienes que hacer lo de makecurrent...
Navegación
Ir a la versión completa