C/Visual C - CRichEditView: impedir arrastrar texto

 
Vista:

CRichEditView: impedir arrastrar texto

Publicado por FlyOnTheWeb (2 intervenciones) el 12/07/2010 13:10:42
Hola,
estoy parcheando una aplicación en la que se muestra información en un CRichEditView. Necesito que la salida no se pueda modificar pero sí que se pueda marcar texto y copiarlo al portapapeles.
Al principio todo sencillo: OnChar, OnKeyDown,...
Pero también necesito impedir que el texto se marque y se arrastre con el ratón. He intentado hacerme un log de los mensajes que se envian durante la ejecución y adivinar cuál de ellos corresponde con esta acción, pero no he sacado nada en claro.

Despues de dar palos de ciego durante un par de días me pregunto si no me estaré complicando y hay una solución más smple. Cualquier idea es bienvenida.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CRichEditView: impedir arrastrar texto - SOLVED

Publicado por FlyOnTheWeb  (2 intervenciones) el 13/07/2010 14:26:47
Después de probar media docena de cosas dando palos de ciego, esta solución tan simple me ha hecho el apaño.

Espero que a alguien le sirva:

(NOTA: disculpas a los puristas por usar una global, soy muy guarro mientras estoy haciendo pruebas)

[code]
afx_msg BOOL CMyDamnView::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT *pResult) {
if ( message == WM_LBUTTONDOWN ) {
// This global (I know, dirty, but I'm just testing) says
// "while I'm true, left button's still held"
g_bLButtonDown = TRUE;
}
if ( message == WM_LBUTTONUP ) {
// Here we say left button's been released
g_bLButtonDown = FALSE;
}
if ( ( message == WM_CAPTURECHANGED ) && g_bLButtonDown ) {
// Finally if WM_CAPTURECHANGED is received while left button
// still held, it means dragging text. Send an "ESC KEY" message and go!
return PostMessage( WM_KEYDOWN, VK_ESCAPE, 0x00010001 );
}
return CRichEditView::OnWndMsg(message, wParam, lParam, pResult);
}
[/code]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar