Mensaje
Hola Salvador:
Gracias por la información. Seguro que me será de ayuda en alguna ocasión el "hook", pero para los controles me da que no podré usarlo pues no me dice en que control se produce esa pulsación de tecla. Buscando por Internet he encontrado esto, que tiene visas de servirme.
https://riptutorial.com/es/winapi/example/29347/umgang-mit-benachrichtigungsnachrichten-fur-allgemeine-steuerungen-innerhalb-der-c-plusplus---klasse
class MyToolbarControl {
public:
MyToolbarControl(HWND hWndToolbar, HWND hWndNotifyParent = nullptr) : _Handle(hWndToolbar) {
if (hWndNotifyParent == nullptr) {
hWndNotifyParent = GetAncestor(hWndToolbar, GA_ROOTOWNER);
}
SetWindowSubclass(
hWndNotifyParent , SubclassWindowProc, reinterpret_cast<UINT_PTR> (this), reinterpret_cast<DWORD_PTR>(this)
);
}
~MyToolbarControl() {
RemoveWindowSubclass(
hWndNotifyParent , SubclassWindowProc, reinterpret_cast<UINT_PTR> (this), reinterpret_cast<DWORD_PTR>(this)
);
}
protected:
HWND _Handle;
static LRESULT CALLBACK SubclassWindowProc(
HWND hWnd, UINT Msg, WPARAM w, LPARAM l, UINT_PTR SubclassId, DWORD_PTR RefData) {
MyToolbarControl * w = reinterpret_cast<MyToolbarControl *>(RefData);
if (Msg == WM_NOTIFY) {
NMHDR* h = reinterpret_cast<NMHDR*>(l);
if (h->hwndFrom == w-> _Handle) {
// Handle notification message here...
}
}
return DefSubclassProc(hWnd, Msg, w, l);
}
};
Que si no he entendido mal, haría que un control, cambiara la función de respuestas de los eventos, por la función que definiera yo en mi programa. Me falta probarlo.
En cuanto a los problemas con los fuentes y colores, ha de ser algún problema con los includes, pues parece que no reconoce las funciones como parte de una DLL, y parece que el link, espera resolver los problemas con una biblioteca estática. (Por cierto, ¿como se indica que funciones ha de buscar en una DLL en concreto?)
¿Hay que indicar algo en los includes, o se ha de añadir la DLL, en cuestión en el Link como se con las bibliotecas estáticas?
Saludos
Daniel de Dios "El Ignorado"
________________________________
De: Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Salvador Pozo <salvador@conclase.net>
Enviado: lunes, 3 de febrero de 2020 21:18
Para: cconclase@listas.conclase.net <cconclase@listas.conclase.net>
Asunto: Re: [C con Clase] Controles de Windows API 32
Hola:
Para capturar el teclado intenta usar un "hook", puedes consultar la documentación de ms:
https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks
Con respecto al problema de usar colores en los edits, prueba a iniciar los controles comunes usando la función, creo que el mensaje WM_CTLCOLOREDIT requiere que se haga esto:
InitCommonControls o InitCommonControlsEx:
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-initcommoncontrolsex
Hay ejemplos a partir del capítulo 47.
Suerte.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador@conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ