Título: [SOLUCIONADO] Agregar item a combo (API) Publicado por: elmaro en 12 Enero 2010, 14:39 pm Buenas, estoy con esa duda. Tengo una aplicación a la que tengo que agregarle unos datos mas al combo (tengo que agregarle años, ya que se quedo corto y es una app vieja) y quisiera saber como agregarle un item. El buscar el Combo no me preocupa, me preocupa mas como agregar el item. Se hace con sendmessage no?
Dejo algunas funciones que voy a usar, quisas a alguien mas le sirven. Código: <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function FindWindow( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As IntPtr End Function <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function FindWindowByClass( _ ByVal lpClassName As String, _ ByVal zero As IntPtr) As IntPtr End Function <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function FindWindowByCaption( _ ByVal zero As IntPtr, _ ByVal lpWindowName As String) As IntPtr End Function <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _ ByVal childAfter As IntPtr, _ ByVal lclassName As String, _ ByVal windowTitle As String) As IntPtr End Function <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function Gracias Mariano Edit: Me tope con un problema. Al usar la funcion GetChildWindows de una ventana, no me devuelve el valor de los ComboBox, justamente los que necesito y del resto de los controles si. Usando el WinID puedo sacar el handle del control, pero esa no es la idea. Estoy atento a cualquier sugerencia. Título: Re: Agregar item a combo (API) Publicado por: seba123neo en 13 Enero 2010, 04:11 am Hola, si se hace con SendMessage y con el mensaje CB_ADDSTRING.
Código
y para agregar seria: Código
saludos. Título: Re: Agregar item a combo (API) Publicado por: elmaro en 13 Enero 2010, 14:40 pm Seba123neo podrias pasarme la declaracion correcta a usar de SendMessage si la tenes por ahi?
Porque me da "La conversion especificada no es valida" Las saque de: http://www.pinvoke.net/default.aspx/user32.SendMessage Saludos! Edito: Si lo pruebo en un combo dentro de mi formulario(para verificar que al menos funcione) me salta un error de "Intento de leer o escribir en la memoria protegida. A menudo, esto indica que hay otra memoria dañada" :S Título: Re: Agregar item a combo (API) Publicado por: seba123neo en 14 Enero 2010, 00:45 am claro, te explico, el tema es que hay 2 tipos de declaraciones de SendMessage, una para mandar Stringsy la otra Long(integers en .NET).
en visual basic 6 cuando querias usar las 2 debias delarar las api's con diferentes nombres y cambiando el tipo de dato del ultimo parametro de la api. por eso veras por ahi nombres como SendMessageSTRING o SendMessageLONG. visual basic 6 en el ultimo parametro se usaba AS Any, aca en .NET cuando queres mandar un mensaje con valor String debes poner en el ultimo parametro As String, y cuando quieras mandar un valor Integer, pones As Integer, podes declarar las 2 api's al mismo tiempo, total el .NET hace automaticamente sobrecarga de funciones, y entonces cuando mandes un string automaticamente va a usar la api que tenga como ultimo parametro String, igual para la de Integer... Para Integer: Código
Para String: Código
saludos. Título: Re: Agregar item a combo (API) Publicado por: elmaro en 14 Enero 2010, 01:34 am Gracias!! Acabo de probarlo con en una aplicacion mia y funciono! Mañana la pruebo en la app que necesito y comento.
El problema estaba en el tipo de dato, mira vos. Habia visto una con StringBuilder y me daba un error raro. En fin, gracias! Atte. Mariano Malomo Edit: Y ya que estamos en el tema, de donde puedo sacar los valores de las constantes para otras acciones para este control y otros? Seria de gran utilidad Título: Re: Agregar item a combo (API) Publicado por: seba123neo en 14 Enero 2010, 03:46 am de internet jeje ;D, aca todas los mensajes para combobox:
Código
esta pagina es buena: Mensaje CB_ADDSTRING (http://winapi.conclase.net/curso/?winmsg=CB_ADDSTRING) y esta tambien: CB_ (Constants) (http://www.pinvoke.net/default.aspx/Constants/CB_.html) saludos. Título: Re: Agregar item a combo (API) Publicado por: elmaro en 14 Enero 2010, 14:25 pm Funciono de maravillas en donde quería.
Gracias por las constantes Saludos |