Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problèmes de messages [ Archives / Au secours ] (appstmd)

vendredi 26 décembre 2003 à 10:49:04 | Problèmes de messages

appstmd

Salut !

J'ai créée une application SDI avec les nouvelles classes CHtmlEditView et CHtmlEditDoc pour mon architecture document/vie (j'utilise Visual C++ .Net).

Dans ma classe View dérivée de CHtmlEditView, j'ai créé les functions OnChar et OnKillFocus pour intercepter les messages WM_CHAR et WM_KILLFOCUS.

Mais ma classe (et CMainFrame) ne reçoit pas ces messages ! (et bien d'autres encore).

Comment intercepter ces genres de messages dans un tel type de document/architecture ? Y-a-t-il quelque chose à ajout de spécial dans le contrôle HtmlEdit pour recevoir ces messages ?

Merci d'avance.
Appstmd
[ Lien ]
Rubrique programmation : htp://www.appstmd.com/programs

vendredi 26 décembre 2003 à 17:22:24 | Re : Problèmes de messages

vecchio56

Administrateur CodeS-SourceS
Ces messages ne sont pas interceptées par la CMainFrame et c'est normal puisque ces messages sont envoyés à la classe View


samedi 27 décembre 2003 à 02:15:30 | Re : Problèmes de messages

appstmd

Ma classe CView ne reçoit pas non plus ces messages.....

Appstmd
[ Lien ]
Rubrique programmation : htp://www.appstmd.com/programs

samedi 27 décembre 2003 à 02:31:10 | Re : Problèmes de messages

appstmd

Voici le code de ma classe CMainFrame :

code:
---------------------------------------------------------------------
// MainFrm.cpp
//

#include "stdafx.h"
#include "Focus3.h"

#include "MainFrm.h"
#include ".\mainfrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
ON_WM_CHAR()
ON_WM_KILLFOCUS()
END_MESSAGE_MAP()

static UINT indicators[] =
{
ID_SEPARATOR,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};


.....

void CMainFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
AfxMessageBox ("OnChar");

CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
}

...
----------------------------------------------------------------------

et de ma classe CView :

code:
----------------------------------------------------------------------

// Focus3View.cpp
//

#include "stdafx.h"
#include "Focus3.h"

#include "Focus3Doc.h"
#include "Focus3View.h"
#include ".\focus3view.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CFocus3View

IMPLEMENT_DYNCREATE(CFocus3View, CHtmlEditView)

BEGIN_MESSAGE_MAP(CFocus3View, CHtmlEditView)
// Commandes d'impression standard
ON_COMMAND(ID_FILE_PRINT, CHtmlEditView::OnFilePrint)
ON_WM_SETFOCUS()
ON_WM_KILLFOCUS()
ON_WM_CHAR()
END_MESSAGE_MAP()

BEGIN_DHTMLEDITING_CMDMAP(CFocus3View)
DHTMLEDITING_CMD_ENTRY(ID_EDIT_COPY, IDM_COPY)
DHTMLEDITING_CMD_ENTRY(ID_EDIT_CUT, IDM_CUT)
DHTMLEDITING_CMD_ENTRY(ID_EDIT_PASTE, IDM_PASTE)
DHTMLEDITING_CMD_ENTRY(ID_EDIT_UNDO, IDM_UNDO)
END_DHTMLEDITING_CMDMAP()


......

void CFocus3View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
AfxMessageBox ("OnChar");

CHtmlEditView::OnChar(nChar, nRepCnt, nFlags);
}

----------------------------------------------------------------------

samedi 27 décembre 2003 à 13:21:02 | Re : Problèmes de messages

vecchio56

Administrateur CodeS-SourceS
Pour commencer moi je travaille avec visual C++ 6 et il y a CHtmlView mais pas CHtmlEditView. En tout cas moi ca marche, ma CView dérivée de CHtmlView recoit bien le message WM_KEYDOWN

Fichier sView.cpp:

// sView.cpp : implementation of the CSView class
//

#include "stdafx.h"
#include "s.h"

#include "sDoc.h"
#include "sView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSView

IMPLEMENT_DYNCREATE(CSView, CHtmlView)

BEGIN_MESSAGE_MAP(CSView, CHtmlView)
//{{AFX_MSG_MAP(CSView)
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CHtmlView::OnFilePrint)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSView construction/destruction

CSView::CSView()
{
// TODO: add construction code here

}

CSView::~CSView()
{
}

BOOL CSView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

return CHtmlView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSView drawing

void CSView::OnDraw(CDC* pDC)
{
CSDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}

void CSView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();

// TODO: This code navigates to a popular spot on the web.
// change the code to go where you'd like.
Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);
}

/////////////////////////////////////////////////////////////////////////////
// CSView printing


/////////////////////////////////////////////////////////////////////////////
// CSView diagnostics

#ifdef _DEBUG
void CSView::AssertValid() const
{
CHtmlView::AssertValid();
}

void CSView::Dump(CDumpContext& dc) const
{
CHtmlView::Dump(dc);
}

CSDoc* CSView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSDoc)));
return (CSDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSView message handlers

void CSView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
MessageBox("OnKeyDown");
CHtmlView::OnKeyDown(nChar, nRepCnt, nFlags);
}

samedi 27 décembre 2003 à 13:25:29 | Re : Problèmes de messages

vecchio56

Administrateur CodeS-SourceS
Par contre le message WM_CHAR n'est effectivement pas recu.


dimanche 28 décembre 2003 à 02:25:01 | Re : Problèmes de messages

appstmd

Merci !! Et pour les messages WM_SETFOCUS et WM_KILLFOCUS ? Je n'arrive pas à les recevoir non plus, je suis vraiment embété !!!

dimanche 28 décembre 2003 à 18:00:13 | Re : Problèmes de messages

vecchio56

Administrateur CodeS-SourceS
c'est la mainframe qui les recoit


dimanche 28 décembre 2003 à 22:22:49 | Re : Problèmes de messages

appstmd

Même la MainFrame ne reçois pas ces messages. Voici mon code :

BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_CHAR)
AfxMessageBox ("Pretranslate Char");
else if (pMsg->message==WM_SETFOCUS)
AfxMessageBox ("Pretranslate Setocuzs");
else if (pMsg->message==WM_KILLFOCUS)
AfxMessageBox ("Pretranslate Killocuzs");

return CFrameWnd::PreTranslateMessage(pMsg);
}




Appstmd
[ Lien ]
Rubrique programmation : htp://www.appstmd.com/programs



Cette discussion est classé dans : url, messages, problèmes, architecture, chtmleditview


Répondre à ce message

Sujets en rapport avec ce message

Problèmes avec MAPI et Incredimail [ par appstmd ] Salut !J'utilise les API de Windows MAPISendMail et MAPISendDocument pour envoyer un message avec un fichier joint. Ca fonctionne avec Outlook et Outl URGENT : Gros problèmes d'exceptions .. [ par monomanahune ] Monomanahune Bonjour,j'ai un enorme problème au niveau de la remontée des exceptions en C++.En effet, j'ai un programme qui gère des formes géométriqu Icone et Dialogue [ par sebastienbro ] Bonjour,J'ai un dialogue que j'affiche grâce a CreateDialog. Jusque là aucun problème.Seulement, j'ai mis une image, et je voudrai insérer dans mon im HInstance et Dll [ par sebastienbro ] Bonjour,J'aimerais comment récupérer le Hinstance lorsque l'on est dans une dll pour pouvoir utiliser la fonction CreateDialog.Merci\* -- Seb [Mail] [ Variables "partagées" [ par sebastienbro ] Bonjour, je voudrais savoir comment partager une variable entre plusieur fichier .cpp. J'ai essayé avec un .h, dans lequel j'ai mis juste ma variable. gestion des messages [ par Sade ] comment faire pour qu'une fenetre gerer les messages même quand celle-ci n'est pas active gestion des messages [ par Sade ] comment faire pour qu'une fenetre continue a traite les message même lorsque celle-ci n'est plus valide. Connection point / notification d'évènements [ par julien20vt ] Ca fait maintenant plusieurs jours que je suis bloqué par ce problème:Je développe sous visual C++, j'aimerais pouvoir implémenter les methodes appelé ASM et C++ [ par sebastienbro ] Bonjour, j'aimerais savoir ce qui ne vas pas dans le code suivant. J'ai une erreur "error C2400: inline assembler syntax error in 'opcode'; found 'con Probleme avec une variable [ par cbil ] Cedric Me contacterBonjour tout le monde !J'ai un gros probleme avec une variable.J'assigne 1 ou 2 à la varia


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.