elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como programar un boton que fue hecho en tiempo de ejecucion?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como programar un boton que fue hecho en tiempo de ejecucion?  (Leído 3,775 veces)
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Como programar un boton que fue hecho en tiempo de ejecucion?
« en: 11 Febrero 2010, 02:01 am »

es decir que si por ejemplo, usé el API CreateWindowEx o el Controls.Add para crearlo. como puedo darles eventos? o no se puede?


En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #1 en: 11 Febrero 2010, 02:04 am »

declaras en el cabezal

private/public withevents Objecto as TipoDeObjeto

despues los asegnas con set Objecto = form.controls.add("...","...")


En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #2 en: 11 Febrero 2010, 02:05 am »

.
con CreateWindowEx seria con un hook para obtener los mensajes q entran a dicha ventana o control.
En línea

The Dark Shadow is my passion.
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #3 en: 11 Febrero 2010, 02:09 am »

me encataria que me dieras un ejemplo
En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #4 en: 11 Febrero 2010, 02:13 am »

.
pega esto en un formulario:

Código
  1.  
  2. Private WithEvents cmbobj As ComboBox
  3.  
  4. Private Sub cmbobj_Change()
  5.    MsgBox "Hola Mundo"
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9.    Set cmbobj = Me.Controls.Add("vb.combobox", "cmbobj")
  10.    With cmbobj
  11.        .Top = 100
  12.        .Left = 100
  13.        .Text = "InfrAngeluX"
  14.        .Visible = True
  15.    End With
  16. End Sub
  17.  
  18.  
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #5 en: 11 Febrero 2010, 02:17 am »

.
con createWindowEx seria asi saque el ejemplo de la API Guide:

Código
  1. 'This project needs one form
  2. ' Also set StartupObject to 'Sub Main'
  3. ' (-> Project Properties -> General Tab -> Startup Object)
  4. '---- Declarations
  5. Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long
  6. Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long
  7. Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
  8. Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  9. Declare Sub PostQuitMessage Lib "user32" (ByVal nExitCode As Long)
  10. Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
  11. Declare Function TranslateMessage Lib "user32" (lpMsg As Msg) As Long
  12. Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As Msg) As Long
  13. Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
  14. Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Any) As Long
  15. Declare Function DefMDIChildProc Lib "user32" Alias "DefMDIChildProcA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  16. '  Define information of the window (pointed to by hWnd)
  17. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  18. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  19. Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  20.  
  21. Type WNDCLASS
  22.    style As Long
  23.    lpfnwndproc As Long
  24.    cbClsextra As Long
  25.    cbWndExtra2 As Long
  26.    hInstance As Long
  27.    hIcon As Long
  28.    hCursor As Long
  29.    hbrBackground As Long
  30.    lpszMenuName As String
  31.    lpszClassName As String
  32. End Type
  33. Type POINTAPI
  34.    x As Long
  35.    y As Long
  36. End Type
  37. Type Msg
  38.    hWnd As Long
  39.    message As Long
  40.    wParam As Long
  41.    lParam As Long
  42.    time As Long
  43.    pt As POINTAPI
  44. End Type
  45.  
  46. ' Class styles
  47. Public Const CS_VREDRAW = &H1
  48. Public Const CS_HREDRAW = &H2
  49. Public Const CS_KEYCVTWINDOW = &H4
  50. Public Const CS_DBLCLKS = &H8
  51. Public Const CS_OWNDC = &H20
  52. Public Const CS_CLASSDC = &H40
  53. Public Const CS_PARENTDC = &H80
  54. Public Const CS_NOKEYCVT = &H100
  55. Public Const CS_NOCLOSE = &H200
  56. Public Const CS_SAVEBITS = &H800
  57. Public Const CS_BYTEALIGNCLIENT = &H1000
  58. Public Const CS_BYTEALIGNWINDOW = &H2000
  59. Public Const CS_PUBLICCLASS = &H4000
  60. ' Window styles
  61. Public Const WS_OVERLAPPED = &H0&
  62. Public Const WS_POPUP = &H80000000
  63. Public Const WS_CHILD = &H40000000
  64. Public Const WS_MINIMIZE = &H20000000
  65. Public Const WS_VISIBLE = &H10000000
  66. Public Const WS_DISABLED = &H8000000
  67. Public Const WS_CLIPSIBLINGS = &H4000000
  68. Public Const WS_CLIPCHILDREN = &H2000000
  69. Public Const WS_MAXIMIZE = &H1000000
  70. Public Const WS_CAPTION = &HC00000                  '  WS_BORDER Or WS_DLGFRAME
  71. Public Const WS_BORDER = &H800000
  72. Public Const WS_DLGFRAME = &H400000
  73. Public Const WS_VSCROLL = &H200000
  74. Public Const WS_HSCROLL = &H100000
  75. Public Const WS_SYSMENU = &H80000
  76. Public Const WS_THICKFRAME = &H40000
  77. Public Const WS_GROUP = &H20000
  78. Public Const WS_TABSTOP = &H10000
  79. Public Const WS_MINIMIZEBOX = &H20000
  80. Public Const WS_MAXIMIZEBOX = &H10000
  81. Public Const WS_TILED = WS_OVERLAPPED
  82. Public Const WS_ICONIC = WS_MINIMIZE
  83. Public Const WS_SIZEBOX = WS_THICKFRAME
  84. Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
  85. Public Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
  86. Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
  87. Public Const WS_CHILDWINDOW = (WS_CHILD)
  88. ' ExWindowStyles
  89. Public Const WS_EX_DLGMODALFRAME = &H1&
  90. Public Const WS_EX_NOPARENTNOTIFY = &H4&
  91. Public Const WS_EX_TOPMOST = &H8&
  92. Public Const WS_EX_ACCEPTFILES = &H10&
  93. Public Const WS_EX_TRANSPARENT = &H20&
  94. ' Color constants
  95. Public Const COLOR_SCROLLBAR = 0
  96. Public Const COLOR_BACKGROUND = 1
  97. Public Const COLOR_ACTIVECAPTION = 2
  98. Public Const COLOR_INACTIVECAPTION = 3
  99. Public Const COLOR_MENU = 4
  100. Public Const COLOR_WINDOW = 5
  101. Public Const COLOR_WINDOWFRAME = 6
  102. Public Const COLOR_MENUTEXT = 7
  103. Public Const COLOR_WINDOWTEXT = 8
  104. Public Const COLOR_CAPTIONTEXT = 9
  105. Public Const COLOR_ACTIVEBORDER = 10
  106. Public Const COLOR_INACTIVEBORDER = 11
  107. Public Const COLOR_APPWORKSPACE = 12
  108. Public Const COLOR_HIGHLIGHT = 13
  109. Public Const COLOR_HIGHLIGHTTEXT = 14
  110. Public Const COLOR_BTNFACE = 15
  111. Public Const COLOR_BTNSHADOW = 16
  112. Public Const COLOR_GRAYTEXT = 17
  113. Public Const COLOR_BTNTEXT = 18
  114. Public Const COLOR_INACTIVECAPTIONTEXT = 19
  115. Public Const COLOR_BTNHIGHLIGHT = 20
  116. ' Window messages
  117. Public Const WM_NULL = &H0
  118. Public Const WM_CREATE = &H1
  119. Public Const WM_DESTROY = &H2
  120. Public Const WM_MOVE = &H3
  121. Public Const WM_SIZE = &H5
  122. ' ShowWindow commands
  123. Public Const SW_HIDE = 0
  124. Public Const SW_SHOWNORMAL = 1
  125. Public Const SW_NORMAL = 1
  126. Public Const SW_SHOWMINIMIZED = 2
  127. Public Const SW_SHOWMAXIMIZED = 3
  128. Public Const SW_MAXIMIZE = 3
  129. Public Const SW_SHOWNOACTIVATE = 4
  130. Public Const SW_SHOW = 5
  131. Public Const SW_MINIMIZE = 6
  132. Public Const SW_SHOWMINNOACTIVE = 7
  133. Public Const SW_SHOWNA = 8
  134. Public Const SW_RESTORE = 9
  135. Public Const SW_SHOWDEFAULT = 10
  136. Public Const SW_MAX = 10
  137. ' Standard ID's of cursors
  138. Public Const IDC_ARROW = 32512&
  139. Public Const IDC_IBEAM = 32513&
  140. Public Const IDC_WAIT = 32514&
  141. Public Const IDC_CROSS = 32515&
  142. Public Const IDC_UPARROW = 32516&
  143. Public Const IDC_SIZE = 32640&
  144. Public Const IDC_ICON = 32641&
  145. Public Const IDC_SIZENWSE = 32642&
  146. Public Const IDC_SIZENESW = 32643&
  147. Public Const IDC_SIZEWE = 32644&
  148. Public Const IDC_SIZENS = 32645&
  149. Public Const IDC_SIZEALL = 32646&
  150. Public Const IDC_NO = 32648&
  151. Public Const IDC_APPSTARTING = 32650&
  152. Public Const GWL_WNDPROC = -4
  153.  
  154. Dim hwnd2 As Long, hwnd3 As Long, old_proc As Long, new_proc As Long
  155. Public Sub Main()
  156.    'KPD-Team 1999
  157.    'URL: http://www.allapi.net/
  158.    'E-Mail: KPDTeam@Allapi.net
  159.    Dim lngTemp As Long
  160.    ' Register class
  161.    If MyRegisterClass Then
  162.        ' Window created?
  163.        If MyCreateWindow Then
  164.        ' Change the button's procedures
  165.        ' Point to new address
  166.            new_proc = GetMyWndProc(AddressOf ButtonProc)
  167.            old_proc = SetWindowLong(hwnd2, GWL_WNDPROC, new_proc)
  168.            ' Message loop
  169.            MyMessageLoop
  170.        End If
  171.        ' Unregister Class
  172.        MyUnregisterClass
  173.    End If
  174. End Sub
  175. Private Function MyRegisterClass() As Boolean
  176.    ' WNDCLASS-structure
  177.    Dim wndcls As WNDCLASS
  178.    wndcls.style = CS_HREDRAW + CS_VREDRAW
  179.    wndcls.lpfnwndproc = GetMyWndProc(AddressOf MyWndProc)
  180.    wndcls.cbClsextra = 0
  181.    wndcls.cbWndExtra2 = 0
  182.    wndcls.hInstance = App.hInstance
  183.    wndcls.hIcon = 0
  184.    wndcls.hCursor = LoadCursor(0, IDC_ARROW)
  185.    wndcls.hbrBackground = COLOR_WINDOW
  186.    wndcls.lpszMenuName = 0
  187.    wndcls.lpszClassName = "myWindowClass"
  188.    ' Register class
  189.    MyRegisterClass = (RegisterClass(wndcls) <> 0)
  190. End Function
  191. Private Sub MyUnregisterClass()
  192.    UnregisterClass "myWindowClass", App.hInstance
  193. End Sub
  194. Private Function MyCreateWindow() As Boolean
  195.    Dim hWnd As Long
  196.    ' Create the window
  197.    hWnd = CreateWindowEx(0, "myWindowClass", "My Window", WS_OVERLAPPEDWINDOW, 0, 0, 400, 300, 0, 0, App.hInstance, ByVal 0&)
  198.    ' The Button and Textbox are child windows
  199.    hwnd2 = CreateWindowEx(0, "Button", "My button", WS_CHILD, 50, 55, 100, 25, hWnd, 0, App.hInstance, ByVal 0&)
  200.    hwnd3 = CreateWindowEx(0, "edit", "My textbox", WS_CHILD, 50, 25, 100, 25, hWnd, 0, App.hInstance, ByVal 0&)
  201.    If hWnd <> 0 Then ShowWindow hWnd, SW_SHOWNORMAL
  202.    ' Show them
  203.    ShowWindow hwnd2, SW_SHOWNORMAL
  204.    ShowWindow hwnd3, SW_SHOWNORMAL
  205.    ' Go back
  206.    MyCreateWindow = (hWnd <> 0)
  207. End Function
  208. Private Function MyWndProc(ByVal hWnd As Long, ByVal message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  209.    Select Case message
  210.        Case WM_DESTROY
  211.            ' Destroy window
  212.            PostQuitMessage (0)
  213.    End Select
  214.    ' calls the default window procedure
  215.    MyWndProc = DefWindowProc(hWnd, message, wParam, lParam)
  216. End Function
  217. Function GetMyWndProc(ByVal lWndProc As Long) As Long
  218.    GetMyWndProc = lWndProc
  219. End Function
  220. Private Sub MyMessageLoop()
  221.    Dim aMsg As Msg
  222.    Do While GetMessage(aMsg, 0, 0, 0)
  223.        DispatchMessage aMsg
  224.    Loop
  225. End Sub
  226. Private Function ButtonProc(ByVal hWnd As Long, ByVal message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  227.    Dim x As Integer
  228.    If (message = 533) Then
  229.        x = MsgBox("You clicked on the button", vbOKOnly)
  230.    End If
  231.    ' calls the window procedure
  232.    ButtonProc = CallWindowProc(old_proc, hWnd, message, wParam, lParam)
  233. End Function
  234.  
  235.  
En línea

The Dark Shadow is my passion.
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #6 en: 11 Febrero 2010, 02:19 am »

espero funcione con los commond Dialog
gracias.. Sin resentimientos?
En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Como programar un boton que fue hecho en tiempo de ejecucion?
« Respuesta #7 en: 11 Febrero 2010, 02:21 am »

espero funcione con los commond Dialog
gracias.. Sin resentimientos?

see ya dije q tengo un carácter raro

se me olvido en mis post

Sangrientas Lunas!¡.
.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines