[C con Clase] [WIN32] Pregunta sobre BS_DEFPUSHBUTTON
Bosco
bosko_jbgg en hotmail.com
Vie Ago 5 17:46:34 CEST 2011
Hola,
estoy creando un programa con una ventana. La ventana principal tiene varios edit y un botón. En este botón le tengo el estilo BS_DEFPUSHBUTTON. Pero no funciona. He creado un código aparte con un edit y un botón para hacer pruebas para que funcione... El código que uso es el siguiente:
Enseño la parte de WM_CREATE y WM_COMMAND:
case WM_CREATE:{
hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
HWND hctrl;
hctrl = CreateWindowEx(0, "EDIT", "",
ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP,
20, 20,
50, 20,
hwnd, (HMENU)ID_EDIT, hInstance, NULL);
CreateWindowEx(0, "BUTTON", "Botón",
BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP,
100, 100,
95, 24,
hwnd, (HMENU)ID_BOTON, hInstance, NULL);
SetFocus(hctrl);
break;
}
case WM_COMMAND:
if(LOWORD(wParam) == ID_BOTON){
MessageBox(hwnd, "Texto", "Botón", MB_OK);
}
También decir que tengo el bucle de mensajes, como se recomienda:
if(!IsDialogMessage(hwnd, &messages)){
TranslateMessage(&messages);
DispatchMessage(&messages);
También en la documentación sobre estilo de button:http://msdn.microsoft.com/en-us/library/bb775951%28v=vs.85%29.aspx, pone que sólo vale para cuadros de diálogo ¿es esto cierto y por eso no me funciona?
En cualquier caso habría alguna solución. Yo he pensado modificar los procedimientos de ventana de los edit para que al pulsar [enter] se active el botón. ¿Creeis que es la mejor solución o hay alguna más adecuada (y no tan artificiosa)?
Muchas gracias por sus respuestas.
Más información sobre la lista de distribución Cconclase