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]