江城学院VC++课程设计Word下载.docx

上传人:b****5 文档编号:17901890 上传时间:2022-12-12 格式:DOCX 页数:27 大小:314.54KB
下载 相关 举报
江城学院VC++课程设计Word下载.docx_第1页
第1页 / 共27页
江城学院VC++课程设计Word下载.docx_第2页
第2页 / 共27页
江城学院VC++课程设计Word下载.docx_第3页
第3页 / 共27页
江城学院VC++课程设计Word下载.docx_第4页
第4页 / 共27页
江城学院VC++课程设计Word下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

江城学院VC++课程设计Word下载.docx

《江城学院VC++课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《江城学院VC++课程设计Word下载.docx(27页珍藏版)》请在冰豆网上搜索。

江城学院VC++课程设计Word下载.docx

3设计步骤

1)至3)学生成绩操作

1.启动VisualC++6.0

2.创建一个工程名为Login的基于对话框应用程序

3.按照设计要求在登陆对话框上添加控件并设置好各自的属性

4.为IDD_LOGIN_DIALOG创建对话框类CLoginDlg

5.为CLoginDlg类中的IDC_EDIT1和IDC_EDIT2添加成员变量m_name和m_number

6.为CLoginDlg类中的IDOK和IDCANCEL添加BN_CLICKED的消息映射,并添加下列代码:

voidCLoginDlg:

:

OnOK()

{

UpdateData(TRUE);

if(m_name=="

LiMing"

&

m_password=="

886688"

CScoreDlgdlg;

dlg.DoModal();

}

elseMessageBox("

没有此用户名或密码错误!

"

"

提示"

);

CDialog:

OnOK();

voidCLoginDlg:

OnCancel()

m_name="

;

m_password="

UpdateData(FALSE);

7.添加一学生成绩输入的对话框,按照设计要求添加控件并设置好各自的属性

8.为IDD_DIALOG1创建对话框类CInputDlg

9.为CInputDlg类中的IDC_EDIT1、IDC_EDIT2、IDC_EDIT3、IDC_EDIT4、IDC_EDIT5、IDC_SPIN1、IDC_SPIN2、IDC_SPIN3依次添加成员变量m_name、m_number、m_score1、m_score2、m_score3、m_spin1、m_spin2、m_spin3

10.为CInputDlg添加WM_INITDIALOG的消息映射,并添加下列代码:

BOOLCInputDlg:

OnInitDialog()

OnInitDialog();

m_spin1.SetRange(0,100);

m_spin2.SetRange(0,100);

m_spin3.SetRange(0,100);

returnTRUE;

11.为CInputDlg添加IDC_SPIN1控件的UDN_DELTAPOS的消息映射,并添加下列代码:

voidCInputDlg:

OnDeltaposSpin1(NMHDR*pNMHDR,LRESULT*pResult)

NM_UPDOWN*pNMUpDown=(NM_UPDOWN*)pNMHDR;

m_score1+=(float)pNMUpDown->

iDelta*0.5f;

if(m_score1<

0.0)m_score1=0.0f;

if(m_score1>

100.0)m_score1=100.0f;

*pResult=0;

12.修改CInputDlg类中IDOK的BN_CLICKED消息映射的代码:

OnOK()

m_name.TrimLeft();

m_number.TrimLeft();

if(m_name.IsEmpty())

MessageBox("

学生姓名不能为空!

else

if(m_number.IsEmpty())

学生学号不能为空!

elseCDialog:

13.添加一学生成绩输入的对话框,按照设计要求添加控件并设置好各自的属性

14.为IDD_DIALOG2创建对话框类CScoreDlg

15.为CScoreDlg类中的IDC_LIST1和IDC_COMBO1添加控件变量m_list和m_combo

16.为CScoreDlg类中的IDC_BUTTON1添加BN_CLICKED的消息映射,并添加下列代码:

voidCScoreDlg:

OnButton1()

CInputDlgdlg;

if(IDOK==dlg.DoModal())

if(m_combo.FindString(-1,dlg.m_number)<

0)

intnIndex=m_combo.AddString(dlg.m_number);

STUDATAdata;

data.name=dlg.m_name;

data.number=dlg.m_number;

data.score1=dlg.m_score1;

data.score2=dlg.m_score2;

data.score3=dlg.m_score3;

m_combo.SetItemDataPtr(nIndex,newSTUDATA(data));

}

m_combo.SetCurSel(0);

OnChangeCombo();

17.CScoreDlg类中的IDC_COMBO1添加CBN_SELCHANGE的消息映射,将其映射函数改为OnChangeCombo,并添加下列代码:

OnChangeCombo()

intnIndex=m_combo.GetCurSel();

if(nIndex!

=CB_ERR)

m_list.ResetContent();

STUDATA*data;

data=(STUDATA*)m_combo.GetItemDataPtr(nIndex);

CStringstr;

str="

姓名:

+data->

name;

m_list.AddString(str);

学号:

number;

str.Format("

成绩1:

%4.1f,成绩2:

%4.1f,成绩3:

%4.1f"

data->

score1,data->

score2,data->

score3);

18.编译并运行整个工程

4)个人通讯簿

2.创建一个工程名为Ex_Address的基于对话框应用程序

3.添加并构造基本情况对话框,创建对话框类CBaseInfoDlg,添加成员变量m_strName、m_strNick、m_timeBirth、m_chSex,添加成员函数变量UpdateSexField

4.添加并构造私人资料对话框,创建对话框类CPrivateDlg,添加成员变量m_strHOME、m_strTEL、m_GSM、m_Email

5.添加并构造单位信息对话框,创建对话框类CWorkDlg,添加成员变量m_strWorkName、m_strADD、m_strTEL、m_strFAX

6.设计主对话框,创建对话框类CEx_AddressDlg,添加成员变量m_List、m_Tab,添加成员函数SetDlgState和DoTab,并添加下列代码:

voidCEx_AddressDlg:

SetDlgState(CWnd*pWnd,BOOLbShow)

pWnd->

EnableWindow(bShow);

if(bShow)

ShowWindow(SW_SHOW);

pWnd->

CenterWindow();

elsepWnd->

ShowWindow(SW_HIDE);

voidCEx_AddressDlg:

DoTab(intnSel)

if(nSel>

2)nSel=2;

if(nSel<

0)nSel=0;

BOOLbTab[3];

bTab[0]=bTab[1]=bTab[2]=FALSE;

bTab[nSel]=TRUE;

SetDlgState(m_pBaseInfoDlg,bTab[0]);

SetDlgState(m_pPrivateDlg,bTab[1]);

SetDlgState(m_pWorkDlg,bTab[2]);

7.为CEx_AddressDlg类中的IDC_TAB1添加TCN_SELCHANGE的消息映射,并添加下列代码:

OnSelchangeTab1

(NMHDR*pNMHDR,LRESULT*pResult)

intnSelect=m_Tab.GetCurSel();

if(nSelect>

=0)DoTab(nSelect);

8.在CEx_AddressDlg:

OnInitDialog中添加下列代码:

m_Tab.SetImageList(&

m_ImageList);

m_Tab.InsertItem(0,"

基本情况"

0);

m_Tab.InsertItem(1,"

私人资料"

1);

m_Tab.InsertItem(2,"

单位信息"

2);

m_Tab.SetCurSel(0);

m_pBaseInfoDlg=newCBaseInfoDlg;

m_pBaseInfoDlg->

Create

(IDD_DIALOG_BASEINFO,GetDlgItem(IDC_STATIC_DLG));

m_pPrivateDlg=newCPrivateDlg;

m_pPrivateDlg->

(IDD_DIALOG_PRIVATE,GetDlgItem(IDC_STATIC_DLG));

m_pWorkDlg=newCWorkDlg;

m_pWorkDlg->

Create(IDD_DIALOG_WORK,GetDlgItem(IDC_STATIC_DLG));

DoTab(0);

ADDRESSdata,data1,data2;

data.strName="

data.strNick="

Peter"

data.chSex='

G'

data.tBirth=CTime(1984,5,6,0,0,0);

data.strHomeAdd="

江苏南京"

data.strWorkName="

南京师范大学"

data1=data;

data1.strName="

WangFang"

data1.strNick="

Mary"

data1.chSex='

M'

data1.tBirth=CTime(1984,12,5,0,0,0);

intnIndex=m_List.AddString(data.strName);

m_List.SetItemDataPtr(nIndex,newADDRESS(data));

nIndex=m_List.AddString(data1.strName);

m_List.SetItemDataPtr(nIndex,newADDRESS(data1));

9.为CEx_AddressDlg类中的IDC_LIST1添加LBN_SELCHANGE的消息映射,并添加下列代码:

OnSelchangeList1()

intnIndex=m_List.GetCurSel();

if(nIndex!

=LB_ERR)

ADDRESS*data=(ADDRESS*)m_List.GetItemDataPtr(nIndex);

m_strName=data->

strName;

m_strNick=data->

strNick;

m_chSex=data->

chSex;

m_timeBirth=data->

tBirth;

m_strHOME=data->

strHomeAdd;

m_strTEL=data->

strHomeTel;

m_strGSM=data->

strGSM;

m_strEmail=data->

strEmail;

m_strWorkName=data->

strWorkName;

m_strADD=data->

strWorkAdd;

strWorkTel;

m_strFAX=data->

strWorkFax;

UpdateData(FALSE);

UpdateSexField();

}

10.为CEx_AddressDlg添加成员变量m_nRedValue和m_Brush

11.在CEx_AddressDlg:

m_scrollRed.SetScrollRange(0,255);

m_sliderBlue.SetRange(0,255);

m_sliderGreen.SetRange(0,255);

m_nBlue=m_nGreen=m_nRedValue=192;

m_scrollRed.SetScrollPos(m_nRedValue);

12.为CEx_AddressDlg添加WM_VSCROLL的消息映射,并添加下列代码:

OnVScroll

(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar)

intnID=pScrollBar->

GetDlgCtrlID();

if(nID==IDC_SCROLLBAR_RED)

switch(nSBCode)

caseSB_LINEUP:

m_nRedValue--;

break;

caseSB_LINEDOWN:

m_nRedValue++;

caseSB_PAGEUP:

m_nRedValue-=10;

caseSB_PAGEDOWN:

m_nRedValue+=10;

caseSB_THUMBTRACK:

m_nRedValue=nPos;

if(m_nRedValue<

0)m_nRedValue=0;

if(m_nRedValue>

255)m_nRedValue=255;

Invalidate();

OnVScroll(nSBCode,nPos,pScrollBar);

13.为CEx_AddressDlg添加WM_CTLCOLOR的消息映射,并添加下列代码:

HBRUSHCEx_AddressDlg:

OnCtlColor

(CDC*pDC,CWnd*pWnd,UINTnCtlColor)

COLORREFcolor=RGB(m_nRedValue,m_nGreen,m_nBlue);

m_Brush.Detach();

m_Brush.CreateSolidBrush(color);

pDC->

SetBkColor(color);

return(HBRUSH)m_Brush;

14.编译并运行整个工程

4运行结果

 

设计二框架窗口界面设计

1)创建一个单文档应用程序Ex_SDI,开始运行时主窗口框架的大小为屏幕的1/4大小,并移动到屏幕的右上角。

当单击工具栏上的圆圈按钮时,该按钮呈按下状态,此时在窗口的客户区的光标为圆圈。

当双击鼠标时,则状态栏上显示“你在(x,y)处双击鼠标”((x,y)为鼠标在客户区的位置)。

若再单击工具栏上的圆圈按钮,则该按钮呈正常状态,光标变成原来的箭形,双击鼠标,状态栏上不再显示任何文本。

2)在上述程序的基础上,改变窗口菜单为一个单一弹出式菜单“测试”,其下包含一菜单项“改变光标”(和工具按钮ID_TEST联动),且该菜单项拥有键盘快捷键“Ctrl+G”,要求右击鼠标时弹出“测试”菜单的子菜单。

3)在上述程序的基础上,为Ex_SDI添加并设计具有动画效果的应用程序图标。

1.学习完框架窗口界面之后开始实验。

2.创建一个工程名为Ex_SDI的单文档应用程序

3.在CEx_SDIApp:

InitInstance函数的最后添加下列代码:

CRectrcDesktop;

:

GetWindowRect(GetDesktopWindow(),rcDesktop);

m_pMainWnd->

MoveWindow

(rcDesktop.Width()/2,0,rcDesktop.Width()/2,rcDesktop.Height()/2);

4.为CMainFrame类添加一个成员变量m_hCursor,添加WM_SETCURSOR的消息映射,并添加下列代码:

BOOLCMainFrame:

OnSetCursor(CWnd*pWnd,UINTnHitTest,UINTmessage)

BOOLbRes=CFrameWnd:

OnSetCursor(pWnd,nHitTest,message);

if((nHitTest==HTCLIENT)&

(m_bIsTest))

m_hCursor=AfxGetApp()->

LoadCursor(IDC_CURSOR1);

SetCursor(m_hCursor);

bRes=TRUE;

returnbRes;

5.在CEx_SDIView类中添加WM_LBUTTONDBLCLK的消息映射,并添加下列代码:

voidCEx_SDIView:

OnLButtonDblClk(UINTnFlags,CPointpoint)

CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->

m_pMainWnd;

CStatusBar*pStatus=&

pFrame->

m_wndStatusBar;

if(pFrame->

m_bIsTest)

你在(%d,%d)处双击鼠标"

point.x,point.y);

str.Empty();

if(pStatus)

pStatus->

SetPaneText(1,str);

CView:

OnLButtonDblClk(nFlags,point);

6.删去菜单栏所有的菜单项,添加一个“测试”菜单,在Accelerator的IDR_MAINFRAME创建该菜单项的快捷键

7.为CMainFrame添加WM_CONTEXTMENU的消息映射,并添加下列代码:

voidCMainFrame:

OnContextMenu(CWnd*pWnd,CPointpoint)

CMenu*pSysMenu=GetMenu();

pSysMenu->

GetSubMenu(0)->

TrackPopupMenu

(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);

8.添加四个图标资源,并绘制图标

9.为CMainFrame添加一个成员函数ChangeIcon,并添加下列代码:

voidCMainFrame:

ChangeIcon(UINTnIconID)

HICONhIconNew=AfxGetApp()->

LoadIcon(nIconID);

HICONhIconOld=(HICON)GetClassLong(m_hWnd,GCL_HICON);

if(hIconNew!

=hIconOld)

DestroyIcon(hIconOld);

SetClassLong(m_hWnd,GCL_HICON,(long)hIconNew);

RedrawWindow();

10.在CMainFrame:

OnCreate函数的最后添加代码:

SetTimer(1,500,NULL)

11.为CMainFrame添加WM_TIMER的消息映射,并添加下列代码:

OnTimer(UINTnIDEvent)

staticinticons[]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4};

staticintindex=0;

ChangeI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1