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

 


Dernière réponse
Sujet : [MFC] Je pige pas comment utiliser PostMessage
Alload 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();
}

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Alload 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();
}
youdontcare :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
Alload 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?
youdontcare regarde du côté d'Invalidate() et le painting en général.
Alload 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)