Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


FOCO

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

FOCO

Notapor Scogar el Vie Nov 18, 2005 8:19 am

Hola a todos.

Como puedo enviar el foco a un control edit determinado ?

Muchas Gracias
Scogar
Novato
Novato
 
Mensajes: 8
Registrado: Mar Nov 15, 2005 11:20 am

SetFocus

Notapor onlytk el Vie Nov 18, 2005 8:46 am

Hola Scogar, pues hay varias maneras de poner el foco a otro control, utilizando la MFC, utilizando la funcion API SetFocus, y enviando un Mensaje al dialogo para que ponga el foco al objeto ke tu indikes:

MFC:
-----

Como la potencialidad de la MFC es full clases, entonces tienes que obtener primeramente un puntero a una clase que represente a tu objeto, y luego le das el foco:

Código: Seleccionar todo
CWnd *pWnd;
pWnd = GetDlgItem(ID_EDIT1);
pWnd->SetFocus();

API:
----

En las API de Windows es full Handles (Manejadores) entonces tienes que obtener el Handle a tu control y despues le pones el foco (hwndDialog es el handle de tu dialogo puedes obtenerlo con GetWindow, o si es MFC la clase de tu Dialogo tiene una variable miembro m_hWnd creo no me acuerdo en estos momentos jejeje :oops: ):

Código: Seleccionar todo
HWND hwndEdit1;

hwndEdit1 = ::GetDlgItem(hwndDialog, ID_EDIT1);
::SetFocus(hwndEdit1);


Utilizando Mensajes:
-----------------------

Código: Seleccionar todo
HWND hwndEdit1;

hwndEdit1 = ::GetDlgItem(hwndDialog, ID_EDIT1);
::SendMessage(hwndEdit1, WM_SETFOCUS, 0, 0);

Como veras hay varias formas, tu elige 8)

Salu2. :twisted:
El Mejor Blog Underground http://www.onlytk.tk
Avatar de Usuario
onlytk
Usuario Activo
Usuario Activo
 
Mensajes: 28
Registrado: Lun Oct 17, 2005 9:41 pm

Re: FOCO

Notapor DJK el Vie Nov 18, 2005 9:29 pm

La descripción que hace OnlyTk es correcta, solo kiero aportar algo, lo descrito para WIN32 funciona correctamente cuando creas una aplicación de tipo DialogBox, pero si usas un Frame o MDI o SDI, no te rula si antes no agregas la función IsDialogMessage( hDlgUser, &msgFrame ); para k cada dialogo extra ke insertes rule perfectamente con SetFocus(); y etc..., esto solo si usas WIN32 si usas MFC Forget It!!! :P


Saludos
Your Kung Fu is not So Good!!!
Avatar de Usuario
DJK
Usuario Activo
Usuario Activo
 
Mensajes: 24
Registrado: Vie Jun 20, 2003 10:37 am
Ubicación: Puno - Perú


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados