#include "afxwin.h"
#include "resource.h"
class CMyWnd:public CFrameWnd
{
CRect m_rectBody;
public:
CMyWnd(){m_rectBody=CRect(100,100,150,180); }
protected:
afx_msg void OnKeyDown(UINT nChar,UINT nRepcnt,UINT nFlags);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)
ON_WM_KEYDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP()
//框架窗口类的成员函数
void CMyWnd::OnKeyDown(UINT nChar,UINT nRepcnt,UINT nFlags)
{
CRect rectClient;
GetClientRect(&rectClient);
InvalidateRect(m_rectBody,TRUE);
switch(nChar)
{
case VK_UP:
if(m_rectBody.top>rectClient.top)
{
m_rectBody.top-=5;
m_rectBody.bottom-=5;
}
break;
case VK_DOWN:
if (m_rectBody.bottom<rectClient.bottom)
{
m_rectBody.top+=5;
m_rectBody.bottom+=5;
}
break;
case VK_LEFT:
if (m_rectBody.left>rectClient.left)
{
m_rectBody.left-=5;
m_rectBody.right-=5;
}
break;
case VK_RIGHT:
if (m_rectBody.right<rectClient.right)
{
m_rectBody.left+=5;
m_rectBody.right+=5;
}
break;
}
InvalidateRect(m_rectBody,FALSE);
}
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
dc.SelectStockObject(LTGRAY_BRUSH);
dc.Ellipse(m_rectBody);
dc.TextOut(150,0,"按方向键控制物体的移动示例!");
}
//应用程序类
class CMyApp:public CWinApp
{
public:
BOOL InitInstance();
};
BOOL CMyApp::InitInstance()
{
/* CMyWnd*pFrame=new CMyWnd;
pFrame->Create(0,_T("Move Ellipse With Keyboard"));
pFrame->ShowWindow(m_nCmdShow);
pFrame->UpdateData();
this->m_pMainWnd=pFrame;
return TRUE;
*/
//一下是修改后的另外一种应用!
HICON hIcon;
hIcon=LoadIcon(IDI_ICON1);
CMyWnd*pFrame=new CMyWnd;
pFrame->Create(0,_T("吹泡泡程序"));
pFrame->SetIcon(hIcon,TRUE);
pFrame->SetIcon(hIcon,FALSE);
pFrame->ShowWindow(m_nCmdShow);
this->m_pMainWnd=pFrame;
return TRUE;
}
//全局应用程序对象
CMyApp ThisApp;