begin process at 2012 02 10 08:49:03
  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 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,466 sec (3)

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