C语言程序设计(郑莉)课后习题答案

7-22 修改例11-4的拼图程序,使之在难度菜单的相应选项前打钩。 程 序:

首先在框架窗口类的消息响应函数声明处增加以下消息响应函数的声明: afx_msg void

CPuzzleWnd::OnUpdateGrad01(CCmdUI*

pCmdUI); afx_msg void

CPuzzleWnd::OnUpdateGrad02(CCmdUI*

pCmdUI); afx_msg void

CPuzzleWnd::OnUpdateGrad03(CCmdUI*

pCmdUI);

然后在框架窗口类的消息映射宏中加入相应内容: BEGIN_MESSAGE_MAP(CPuzzleWnd, CFrameWnd) ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_MOUSEMOVE() ON_WM_PAINT()

ON_COMMAND(ID_SHOWFIG, OnShowFig) ON_COMMAND(ID_GRAD01, OnGrad01) ON_COMMAND(ID_GRAD02, OnGrad02) ON_COMMAND(ID_GRAD03, OnGrad03)

ON_UPDATE_COMMAND_UI(ID_GRAD01, OnUpdateGrad01) ON_UPDATE_COMMAND_UI(ID_GRAD02, OnUpdateGrad02) ON_UPDATE_COMMAND_UI(ID_GRAD03, OnUpdateGrad03) END_MESSAGE_MAP()

注意更新命令用户接口消息映射宏将菜单标识符与相应的消息映射函数联系在一起。最后编写相应的更新命令用户接口消息映射函数:

void CPuzzleWnd::OnUpdateGrad01(CCmdUI* pCmdUI) {

pCmdUI->SetCheck(m_nColCount == 4); }

void CPuzzleWnd::OnUpdateGrad02(CCmdUI* pCmdUI) {

pCmdUI->SetCheck(m_nColCount == 8); }

void CPuzzleWnd::OnUpdateGrad03(CCmdUI* pCmdUI) {

pCmdUI->SetCheck(m_nColCount == 16); }

输入输出:在选择拼图难度时,可在相应选项前打钩(图13-4)。

// Example 13-7: 七巧板程序

////////////////////////////////// #include #include //

//////////////////////////////////////////////////// #define MAX_POINTS 4 #define CHIP_WIDTH 240 #define DELTA 30

class CChip : public CObject {

DECLARE_SERIAL(CChip) int m_nType;

CPoint m_pointList[MAX_POINTS]; int m_nPointCount; public: CChip(){}

void SetChip(int type, POINT *ppointlist, int count); void DrawChip(CDC *pDC); BOOL PtInChip(POINT point); LPCRECT GetRect();

void MoveTo(CSize offset); void Rotat

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4