[C con Clase] forma del cursor

Camilo José cjdelreal2009 en gmail.com
Vie Sep 17 16:40:32 CEST 2010


Hola adolfo

El cñodigo que planteas no está mal del todo pero la función que debes emplear para cambiar el cursor es  SetClassLong.
Mira, el cursor es uno de los datos que se entrar inicialmente al declarar la clase de ventana (WNDCLASSEX), para ello debes hacer uso de una función que te modifique los valores de esa estructura, en específico el del cursor.
Por ejemplo:
LRESULT CALLBACK WIndowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   HINSTANCE hInstance;
   HCURSOR cursor;
   switch(message)
   {
     case WM_CREATE:
       hInstance=((LPCREATESTRUCT)lParam)->hInstance;
       cursor=LoadCursor(hInstance, "cursordeprueba");
       SetClassLong(hwnd, GCL_HCURSOR,(LONG)cursor);
       break;
     case WM_DESTROY:
       QuitPostMessage(0);
       break;
     default:
        return DefWindowProc(hwnd, message, wParam, lParam);
   }
   return 0;
}
 
Atendiendo a la función
se pasa primero el manipulador de la ventana
luego el indice de la que deseas cambiar que en esta caso es GCL_HCURSOR
y por último el manipulador del cursor convertido a un valor LONG


Puedes usar las funciones GetClassLong y SetClassLong para obtener y modificar, respectivamente los valores de la classe de ventana.


Puedes obtener mas informacion respecto a esto en
http://winapi.conclase.net/curso/index.php?cap=032#inicio
o ir al manual del curso, si lo tienes descargado, en el capítulo dedicado al cursor

Espero haberta ayudado
Camilo.

--------------------------------------
a> me gustaria saber que metodo emplar para cambiar la forma del puntero del
a> mouse
a> uso codeblocks para windows
a> He tratado con:
a> LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam,
a> LPARAM lParam)
a> {
a>     static HCURSOR cursor;
a> .....
a>   case WM_CREATE:
a>      cursor=LoadCursorFromFile("hand.cur");
a>      SetCursor(cursor);
a> _______________________________________________



Más información sobre la lista de distribución Cconclase