begin process at 2010 02 10 12:15:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problèmes de messages


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problèmes de messages

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales