API en C# y NET

06/02/2007 - 17:12 por Item | Informe spam
Hola al grupo.

Quiero utilizar "SendMessage" para abrir unos combos cuando cogen el foco
pero no me aclaro con la sintaxis. En VB lo tengo claro pero en C# no
consigo hacerla funcionar.

El código en VB 60 es el siguiente, sólo quería saber que cambia.

Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long

y

Dim Resp As Long
Resp = SendMessageLong(Combo1.hwnd, &H14F, True, 0)

Cuando se entra en el combo.

Gracias.
 

Leer las respuestas

#1 Alberto Poblacion
06/02/2007 - 18:03 | Informe spam
"Item" wrote in message
news:%
Quiero utilizar "SendMessage" para abrir unos combos cuando cogen el foco
pero no me aclaro con la sintaxis. En VB lo tengo claro pero en C# no
consigo hacerla funcionar.

El código en VB 60 es el siguiente, sólo quería saber que cambia.

Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long

y

Dim Resp As Long
Resp = SendMessageLong(Combo1.hwnd, &H14F, True, 0)

Cuando se entra en el combo.



En C# se declara mediante el atributo [DllImport] asi:

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam,
IntPtr lParam);

Llámala asi:

SendMessage(new HandleRef(this,Combo1.hWnd), 0x14f, new IntPtr(1),
IntPtr.Zero);

Preguntas similares