设为首页 加入收藏

TOP

MFC、VC++综合作业题(四)
2016-04-27 17:25:25 来源: 作者: 【 】 浏览:845
Tags:MFC 综合 作业

CStudent:Serialize(CArchive & ar)

{ CObject::Serialize(ar);

if ( ar.IsStoring() )

{ ar<

}

else

{ ar>>Num>>Name>> Birth >>Address>>Grade;

}

}

11、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的CAddrlist.h和CAddrlist.cpp文件的内容

答:

//Addrlist.h文件内容:

class CAddrlist : public CObject {

public:

CString Name;

CString Address;

CString Tel;

CTime Birth;

CAddrlist();

DECLARE_SERIAL(CAddrlist) // 使对象可串行化

virtual void Serialize( CArchive & ar ); //重载串行化函数

};

// Addrlist.cpp文件内容:

IMPLEMENT_SERIAL(CAddrlist,CObject, 0)

void CAddrlist::Serialize(CArchive & ar)

{ CObject::Serialize(ar);

if ( ar.IsStoring() )

{ ar<

}

else

{ ar>>Name>>Tel>>Address>>Birth;

}

}

12、编写一个单文档应用程序,在窗口用户区中绘制一个圆形,当单击鼠标左键时,圆形变大为原图形2倍大,当单击鼠标右键时,圆形恢复原状。(注意:矩形的左上角坐标不变)

答:(1)在文档类声明定义成员变量

public:

CRect m_rect;

(2)在文档类的构造函数中对成员变量进行初始化

CSample0804Doc::CSample0804Doc()

{

m_rect.left=100;

m_rect.right=150;

m_rect.top=100;

m_rect.bottom=150;

}

(3)在视图类的OnDraw函数中添加相应代码:

void CSample0804View::OnDraw(CDC* pDC)

{

CSample0804Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->Ellipse(pDoc->m_rect);

}

(4)在视图类的OnLButtonDown函数中添加相应代码:

void CSample0804View::OnLButtonDown(UINT nFlags, CPoint point)

{

CSample0804Doc* pDoc=GetDocument();

CRect rt;

GetClientRect(&rt); //获取当前的绘图区域

pDoc->m_rect.left=100;

pDoc->m_rect.right=200;

pDoc->m_rect.top=100;

pDoc->m_rect.bottom=200;

InvalidateRect(NULL,TRUE); //刷新窗口

CView::OnLButtonDown(nFlags, point);

}

(5)在视图类的OnRButtonDown函数中添加相应代码:

void CSample0804View::OnRButtonDown(UINT nFlags, CPoint point)

{

CSample0804Doc* pDoc=GetDocument();

CRect rt;

GetClientRect(&rt); //获取当前的绘图区域

pDoc->m_rect.left=100;

pDoc->m_rect.right=150;

pDoc->m_rect.top=100;

pDoc->m_rect.bottom=150;

InvalidateRect(NULL,TRUE); //刷新窗口

CView::OnRButtonDown(nFlags, point);

}

答:已做

三、给下面的程序中每一句加注释

#include

#include

LRESULT CALLBACK WinSunProc(

HWND hwnd, // handle to window

UINT uMsg, // message identifier

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

);

int WINAPI WinMain(

HINSTANCE hInstance, // handle to current instance

HINSTANCE hPrevInstance, // handle to previous instance

LPSTR lpCmdLine, // command line

int nCmdShow // show state

)

{

WNDCLASS wndcls;

wndcls.cbClsExtra=0;

wndcls.cbWndExtra=0;

wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);

wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);

wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);

wndcls.hInstance=hInstance;

wndcls.lpfnWndProc=WinSunProc;

wndcls.lpszClassName="Weixin2003";

wndcls.lpszMenuName=NULL;

wndcls.style=CS_HREDRAW | CS_VREDRAW;

RegisterClass(&wndcls);

HWND hwnd;

hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,

0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);

UpdateWindow(hwnd);

MSG msg;

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return 0;

}

LRESULT CALLBACK WinSunProc(

HWND hwnd, // handle to window

UINT uMsg, // message identifier

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

)

{

switch(uMsg)

{

case WM_CHAR:

char szChar[20];

sprintf(szChar,"char is %d",wParam);

MessageBox(hwnd,szChar,"weixin",0

首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++学习笔记之四 复合类型1 下一篇LeetCode最常见的面试笔试题总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目