Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2419 connectés 

  FORUM HardWare.fr
  Programmation

  [MFC] Je pige pas comment utiliser PostMessage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Je pige pas comment utiliser PostMessage

n°45499
Alload
Posté le 09-07-2001 à 23:00:43  profilanswer
 

J'ai fais une mini application qui affiche un texte et change de texte quand on appuie sur une touche du clavier.
 
Mais j'ai un problème avec la fonction PostMessage, je la mets dans ma fonction OnKeyDown() mais quand je lance mon appli ça marche pas.
 
 
#include <afxwin.h>
 
char buffer[256];
 
 
class CProg : public CWinApp
{
public:
 BOOL InitInstance();
};
 
 
class CWindow : public CFrameWnd
{
public:
 CWindow();
 
protected:
 afx_msg void OnPaint();
 afx_msg void OnKeyDown();
 
DECLARE_MESSAGE_MAP()
};
 
BEGIN_MESSAGE_MAP(CWindow, CFrameWnd)
 ON_WM_PAINT()
 ON_WM_KEYDOWN()
END_MESSAGE_MAP()
 
 
CProg lProg;
 
 
BOOL CProg::InitInstance()
{
 m_pMainWnd = new CWindow;
 m_pMainWnd->ShowWindow(m_nCmdShow);
 m_pMainWnd->UpdateWindow();
 
 return true;
}
 
 
CWindow::CWindow()
{
 Create( NULL,
  "MFC Project",
  WS_OVERLAPPEDWINDOW,
  CRect(0, 0, 800, 600));
 
 sprintf(buffer, "Hello World." );
}
 
 
void CWindow::OnPaint()
{
 CPaintDC dc(this);
 RECT rect;
 lProg.m_pMainWnd->GetClientRect(&rect);
 dc.DrawText(buffer, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
 
void CWindow::OnKeyDown()
{
 sprintf(buffer, "Une touche a été pressée." );
 PostMessage(WM_PAINT);
}

 

[edtdd]--Message édité par Alload--[/edtdd]

mood
Publicité
Posté le 09-07-2001 à 23:00:43  profilanswer
 

n°45502
youdontcar​e
Posté le 09-07-2001 à 23:22:28  profilanswer
 

regarde du côté d'Invalidate() et le painting en général.

n°45503
Alload
Posté le 09-07-2001 à 23:29:17  profilanswer
 

Ca marche si j'utilise cette définition de la fonction OnKeyDown() de la class CWindow:
 
void CWindow::OnKeyDown()
{
 sprintf(buffer, "Une touche a été pressée." );
 RECT rect;
 lProg.m_pMainWnd->GetClientRect(&rect);
 InvalidateRect(&rect);
}
 
 
Mais n'y a-t-il pas moyen d'envoyer un message WM_PAINT qui sera traiter par la fonction OnPaint() de la class CWindow?

n°45507
youdontcar​e
Posté le 09-07-2001 à 23:33:04  profilanswer
 

:lol: heureusement que te dis de mater du côté d'Invalidate() ... :lol: :lol: :lol:
 
hehehe j'en peux plus c'est du délire ce soir :D

n°45508
Alload
Posté le 09-07-2001 à 23:37:53  profilanswer
 

Ah oui, ça aussi ça marche et c'est plus propre:
 
void CWindow::OnKeyDown()
{
 sprintf(buffer, "Une touche a été pressée." );
 lProg.m_pMainWnd->Invalidate();
}


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [MFC] Je pige pas comment utiliser PostMessage

 

Sujets relatifs
[MFC]Question[VB] Utiliser la carte son, pour faire un chat vocal
Vous pensez quoi des MFC ?config de php sur le serveur pour utiliser fct odbc
C++, API Win32, et éventuellement MFC : émuler le bouton d'une fenêtre[HTML-CSS] changer la couleur de fond d'un chekbox sans utiliser XML
[Visual C++] Changer l'icône du programme MFC[C++] Y a un truc que je pige pas avec les class
Utiliser object vbscript en ASP?[XML] Utiliser un XSL qui soit en fait un JSP ?
Plus de sujets relatifs à : [MFC] Je pige pas comment utiliser PostMessage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR