📄 fina.cpp
字号:
340,10,200,250,
hWnd,
(HMENU)NULL,
hInst,
NULL);
hImageList=ImageList_Create(IMAGEWIDTH,IMAGEHEIGHT,0,IMAGENUM,0);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_INFO));
idInfo=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_CLASS));
idClass=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_FACEON));
idFaceOn=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_FACEADD));
idFaceAdd=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_ROOT));
idRoot=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_ME));
idMe=ImageList_Add(hImageList,hBitmap,NULL);
hBitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_CLASSADD));
idClassAdd=ImageList_Add(hImageList,hBitmap,NULL);
if(ImageList_GetImageCount(hImageList)<IMAGENUM)
{
MessageBeep(0xffffffff);
return 0;
}
if(TreeView_SetImageList(hTree,hImageList,idInfo)) MessageBeep(0xffffffff);
LoadString(hInst,IDS_ROOT,cTmpBuff,sizeof(cTmpBuff));
hRootItem=AddOneItem(hTree,TVI_ROOT,TVI_FIRST,cTmpBuff,idRoot);
LoadString(hInst,IDS_INFO,cTmpBuff,sizeof(cTmpBuff));
hInfoItem=AddOneItem(hTree,TVI_ROOT,TVI_LAST,cTmpBuff,idInfo);
LoadString(hInst,IDS_ME,cTmpBuff,sizeof(cTmpBuff));
hMeItem=AddOneItem(hTree,hInfoItem,TVI_LAST,cTmpBuff,idMe);
LoadString(hInst,IDS_CLASSADD,cTmpBuff,sizeof(cTmpBuff));
hClassAddItem=AddOneItem(hTree,hRootItem,TVI_LAST,cTmpBuff,idClassAdd);
ReflashTreeWnd();
return 1;
}
HTREEITEM AddOneItem(HWND hTreeWnd,HTREEITEM hParentItem,HTREEITEM hBrotherItem,LPSTR szText,int iImage)
{
TV_ITEM tvItem;
TV_INSERTSTRUCT tvInsertItem;
HTREEITEM hTreeItem;
tvItem.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM;
tvItem.pszText=szText;
tvItem.cchTextMax=lstrlen(szText);
tvItem.iImage=iImage;
tvItem.iSelectedImage=iImage;
tvInsertItem.item=tvItem;
tvInsertItem.hParent=hParentItem;
tvInsertItem.hInsertAfter=hBrotherItem;
hTreeItem=(HTREEITEM)SendMessage(hTreeWnd,TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)&tvInsertItem);
return(hTreeItem);
}
BOOL DelOneItem(HWND hTreeWnd,HTREEITEM hDelItem)
{
TreeView_DeleteItem(hTree,hDelItem);
return 1;
}
BOOL _stdcall InitOperateIcon(HWND hWnd,HDC hDc)
{
if(!DrawIcon(hDc,23,276,hExitIcon))
return 0;
TextOut(hDc,26,274+34,"Exit",sizeof("Exit")-1);
if(!DrawIcon(hDc,280,276,hHelpIcon))
return 0;
TextOut(hDc,282,274+34,"Help",sizeof("Help")-1);
if(!DrawIcon(hDc,230,276,hDelIcon))
return 0;
TextOut(hDc,226,274+34,"Delete",sizeof("Delete")-1);
if(!DrawIcon(hDc,180,276,hNextIcon))
return 0;
TextOut(hDc,182,274+34,"Next",sizeof("Next")-1);
if(!DrawIcon(hDc,130,276,hInfoIcon))
return 0;
TextOut(hDc,134,274+34,"Info",sizeof("Info")-1);
if(!DrawIcon(hDc,80,276,hPrevIcon))
return 0;
TextOut(hDc,82,274+34,"Prev",sizeof("Prev")-1);
return 1;
}
BOOL _stdcall CurPosSetting(HICON hNewIcon,RECT Rect)
{
HDC hDc;
hDc=GetDC(hwnd);
if(DrawIcon(hDc,Rect.left,Rect.top,hNewIcon))
{
ReleaseDC(hwnd,hDc);
return 0;
}
ReleaseDC(hwnd,hDc);
return 1;
}
BOOL CALLBACK CreateClassInfoWnd(HWND hParentWnd,HDC hParentDC)
{
char str[6][8]={{"学科一"},{"学科一"},{"学科二"},{"学科四"},{"学科五"},{"学科六"}};
int i;
SetBkMode(hParentDC,TRANSPARENT);
SetTextColor(hParentDC,RGB(0,0,0));
TextOut(hParentDC,15,5,"班级名称",lstrlen("班级名称"));
hgClassNameWnd=CreateWindowEx(0L,
"edit",
"ClassNameWnd",
WS_CHILD|WS_VISIBLE|ES_LEFT,
90,5,170,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
TextOut(hParentDC,100,35,"学科名称",lstrlen("学科名称"));
TextOut(hParentDC,250,35,"学分",lstrlen("学分"));
for(i=0;i<6;i++)
{
TextOut(hParentDC,5,35+(1+i)*25,str[i],lstrlen(str[i]));
hgSubjectNameWnd[i]=CreateWindowEx(0L,
"edit",
"SubjectNameWnd",
WS_VISIBLE|WS_CHILD|ES_LEFT,
60,35+(i+1)*25,170,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
hgSubjectScoreWnd[i]=CreateWindowEx(0L,
"edit",
"X",
WS_VISIBLE|WS_CHILD|ES_LEFT,
250,35+(i+1)*25,30,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
}
// SetWindowText(hgClassNameWnd,"elllfagjae");
return 1;
}
BOOL CALLBACK SaveData(HTREEITEM hParentItem,HTREEITEM hChildItem)
{
char cClassNameSaving[21];
char cSubjectNameSaving[6][21];
char cSubjectScoreSaving[6][3];
float fSubjectScoreSaving[6];
char cStudentNameSaving[11];
char cStudentScoreSaving[6][5];
char cStudentNumSaving[10];
float fStudentScoreSaving[6];
BOOL bIsFaceAddItem;
int i,j,k;
char str[21];
//the prev item not exist!
if(hParentItem==hRootItem)
{
hDataFile=_lopen("fina.hui",OF_WRITE);
if(hDataFile==HFILE_ERROR)
return 0;
Edit_GetText(hgClassNameWnd,cClassNameSaving,21);
for(i=0;i<6;i++)
{
Edit_GetText(hgSubjectNameWnd[i],cSubjectNameSaving[i],21);
Edit_GetText(hgSubjectScoreWnd[i],cSubjectScoreSaving[i],3);
}
for(i=0;i<6;i++)
{
fSubjectScoreSaving[i]=String2Float(cSubjectScoreSaving[i]);
/*?????*/ wsprintf(str,"%d",(int)fSubjectScoreSaving[i]);/*???????????????*/
// MessageBox(NULL,str,"value",MB_OK);
}
/*hClassAddItem*/
if((lstrcmp(cClassNameSaving,"ClassNameWnd")!=0)&&hChildItem==hClassAddItem)
{
lstrcpy(classroom[iClassNumber].cClassName,cClassNameSaving);
for(i=0;i<6;i++)
{
lstrcpy(classroom[iClassNumber].classsubject[i].cSubjectName,cSubjectNameSaving[i]);
classroom[iClassNumber].classsubject[i].fSubjectScore=fSubjectScoreSaving[i];
}
if(_llseek(hDataFile,iClassNumber*sizeof(struct classinfo),0)==HFILE_ERROR)
{
MessageBox(NULL,"Error Seek","Information",MB_OK);
}
if(_lwrite(hDataFile,(LPSTR)&classroom[iClassNumber],sizeof(struct classinfo))==HFILE_ERROR)
{
MessageBox(NULL,"Error Write","Information",MB_OK);
}
// lstrcpy(cTmpBuff,cClassNameSaving);
// hClassItem[iClassNumber]=AddOneItem(hTree,hRootItem,TVI_FIRST,cTmpBuff,idClass);
_lclose(hDataFile);
ReflashTreeWnd();
}
else if(hChildItem!=hClassAddItem)//class
{
hDataFile=_lopen("fina.hui",OF_WRITE);
if(hDataFile==HFILE_ERROR)
return 0;
i=GetClassItemNum(hChildItem);
lstrcpy(classroom[i].cClassName,cClassNameSaving);
for(j=0;j<6;j++)
{
lstrcpy(classroom[i].classsubject[j].cSubjectName,cSubjectNameSaving[j]);
classroom[i].classsubject[j].fSubjectScore=fSubjectScoreSaving[j];
// wsprintf(str,"%d",(int)fSubjectScoreSaving[j]);
// MessageBox(NULL,str,"value1",MB_OK);
}
if(_llseek(hDataFile,i*sizeof(struct classinfo),0)==HFILE_ERROR)
{
MessageBox(NULL,"Error Seek Where Change Class","Information",MB_OK);
}
if(_lwrite(hDataFile,(LPSTR)&classroom[i],sizeof(struct classinfo))==HFILE_ERROR)
{
MessageBox(NULL,"Error Write","Information",MB_OK);
}
// ReflashTreeWnd();
UpdateInfoData();
}
}
else//student
{
for(i=0;i<20;i++)
{
if(hChildItem==hFaceAddItem[i])
{
bIsFaceAddItem=1;
break;
}
}
Edit_GetText(hgStudentNameWnd,cStudentNameSaving,11);
Edit_GetText(hgStudentNumWnd,cStudentNumSaving,10);
for(i=0;i<6;i++)
{
Edit_GetText(hgStudentScoreWnd[i],cStudentScoreSaving[i],5);
}
for(i=0;i<6;i++)
{
fStudentScoreSaving[i]=String2Float(cStudentScoreSaving[i]);
}
if((lstrcmp(cStudentNameSaving,"StudentNameWnd")!=0)&&bIsFaceAddItem)
{
hDataFile=_lopen("fina.hui",OF_WRITE);
if(hDataFile==HFILE_ERROR)
return 0;
i=GetClassItemNum(hParentItem);
j=GetStudentItemNum(i,hChildItem);
lstrcpy(classroom[i].student[j].cStudentName,cStudentNameSaving);
for(k=0;k<6;k++)
{
classroom[i].student[j].fScore[k]==fStudentScoreSaving[k];
lstrcpy(classroom[i].student[j].cStudentNum,cStudentNumSaving);
}
if(_llseek(hDataFile,i*sizeof(struct classinfo)+sizeof(struct subjectinfo)+sizeof(str[21])+j*sizeof(struct studentinfo),0)==HFILE_ERROR)
{
MessageBox(hwnd,"Error Seek","Student Add",MB_OK);
}
if(_lwrite(hDataFile,(LPSTR)&classroom[i].student[j],sizeof(struct studentinfo))==HFILE_ERROR)
{
MessageBox(hwnd,"Error Write","Student Add",MB_OK);
}
_lclose(hDataFile);
// ReflashTreeWnd();
}
else
{
}
}
return 1;
}
void SetClassInfoWndContent(int iClassItemNum)
{
int k;
SetWindowText(hgClassNameWnd,classroom[iClassItemNum].cClassName);
for(k=0;k<6;k++)
{
SetWindowText(hgSubjectNameWnd[k],classroom[iClassItemNum].classsubject[k].cSubjectName);
wsprintf(cTmpBuff,"%d",(int)classroom[iClassItemNum].classsubject[k].fSubjectScore);
SetWindowText(hgSubjectScoreWnd[k],cTmpBuff);
}
}
int GetClassItemNum(HTREEITEM hChildItem)
{
int i;
// char str[10];
for(i=0;i<20;i++)
{
if(hChildItem==hClassItem[i])
{
break;
}
}
// wsprintf(str,"%d",i);
// MessageBox(NULL,str,"getClassItemNum",MB_OK);
return i;
}
int GetStudentItemNum(int iParentNum,HTREEITEM hChildItem)
{
int i;
for(i=0;i<20;i++)
{
if(hChildItem==hFaceOnItem[iParentNum][i])
{
break;
}
}
return i;
}
float String2Float(char cString[21])
{
char cDot='.';
BOOL bIsDot=0;
int iTmpNum=1;
float fResult;
// char str[20];
// char *pStr;
for(iTmpCount=0;iTmpCount<21;iTmpCount++)
{
if(cString[iTmpCount]=='\0')
break;
}
for(iTmpCount1=0;iTmpCount1<iTmpCount-1;iTmpCount1++)
{
if(cString[iTmpCount1]==cDot)
{
bIsDot=1;
break;
}
}
if(!bIsDot)
iTmpCount1++;
for(iTmpCount2=0;iTmpCount2<iTmpCount1;iTmpCount2++)
{
for(iTmpCount3=0;iTmpCount3<iTmpCount1-iTmpCount2-1;iTmpCount3++)
{
iTmpNum=iTmpNum*10;
}
fResult=fResult+(cString[iTmpCount2]-'0')*iTmpNum;
iTmpNum=1;
}
if(!bIsDot)
{
for(iTmpCount2=0;iTmpCount2<iTmpCount-iTmpCount1-1;iTmpCount2++)
{
for(iTmpCount3=0;iTmpCount3<iTmpCount2+1;iTmpCount3++)
{
iTmpNum=iTmpNum*10;
}
fResult=fResult+(cString[iTmpCount1+iTmpCount2]-'0')/iTmpNum;
iTmpNum=1;
}
}
bIsDot=0;
/*
pPos=strchr(cString,cDot);*/
// wsprintf(str,"%[precision]s",fResult);
// pStr=Float2String(fResult);
// str=Float2String(fResult);
// MessageBox(hwnd,str,"info",MB_OK);
return fResult;
}
/*
char * Float2String(float fFloat)
{
char *pResult;
// pResult[0]=fFloat+'0';
// pResult[1]='\0';
double dZs;
double dZs;
int iZs;
xs=modf(fFloat,&zs);
pResult="hello world";
return pResult;
}*/
BOOL ReflashTreeWnd()
{
int i,j;
iClassNumber=0;
for(i=0;i<20;i++)
{
iStudentNumber[i]=0;
}
hDataFile=_lopen("fina.hui",OF_READ);
if(hDataFile==HFILE_ERROR)
return 0;
for(i=0;i<20;i++)
{
if(hClassItem[i])
DelOneItem(hTree,hClassItem[i]);
}
for(i=0;i<20;i++)
{
_lread(hDataFile,&classroom[i],sizeof(struct classinfo));
if(!lstrcmp(classroom[i].cClassName,""))
break;
iClassNumber++;
lstrcpy(cTmpBuff,classroom[i].cClassName);
hClassItem[i]=AddOneItem(hTree,hRootItem,TVI_FIRST,cTmpBuff,idClass);
for(j=0;j<50;j++)
{
if(!lstrcmp(classroom[i].student[j].cStudentName,""))
break;
iStudentNumber[i]++;
lstrcpy(cTmpBuff,classroom[i].student[j].cStudentName);
hFaceOnItem[i][j]=AddOneItem(hTree,hClassItem[i],TVI_FIRST,cTmpBuff,idFaceOn);
}
LoadString(hInst,IDS_FACEADD,cTmpBuff,sizeof(cTmpBuff));
hFaceAddItem[i]=AddOneItem(hTree,hClassItem[i],TVI_FIRST,cTmpBuff,idFaceAdd);
}
_lclose(hDataFile);
return 1;
}
BOOL UpdateInfoData(void)
{
int i,j;
iClassNumber=0;
hDataFile=_lopen("fina.hui",OF_READ);
if(hDataFile==HFILE_ERROR)
return 0;
for(i=0;i<20;i++)
{
_lread(hDataFile,&classroom[i],sizeof(struct classinfo));
if(!lstrcmp(classroom[i].cClassName,""))
break;
iClassNumber++;
// lstrcpy(cTmpBuff,classroom[i].cClassName);
// hClassItem[i]=AddOneItem(hTree,hRootItem,TVI_FIRST,cTmpBuff,idClass);
for(j=0;j<50;j++)
{
if(!lstrcmp(classroom[i].student[j].cStudentName,""))
break;
iStudentNumber[j]++;
// lstrcpy(cTmpBuff,classroom[i].student[j].cStudentName);
// hFaceOnItem[i][j]=AddOneItem(hTree,hClassItem[i],TVI_FIRST,cTmpBuff,idFaceOn);
}
// LoadString(hInst,IDS_FACEADD,cTmpBuff,sizeof(cTmpBuff));
// hFaceAddItem=AddOneItem(hTree,hClassItem[i],TVI_FIRST,cTmpBuff,idFaceAdd);
}
_lclose(hDataFile);
return 1;
}
BOOL CALLBACK CreateStudentInfoWnd(HWND hParentWnd,HDC hParentDC)
{
int i;
SetBkMode(hParentDC,TRANSPARENT);
SetTextColor(hParentDC,RGB(0,0,0));
TextOut(hParentDC,3,5,"学生姓名",lstrlen("学生姓名"));
hgStudentNameWnd=CreateWindowEx(0L,
"edit",
"StudentNameWnd",
WS_CHILD|WS_VISIBLE|ES_LEFT,
73,5,90,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
TextOut(hParentDC,170,5,"学号",lstrlen("学号"));
hgStudentNumWnd=CreateWindowEx(0L,
"edit",
"StudentNumWnd",
WS_VISIBLE|WS_CHILD|ES_LEFT,
205,5,80,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
TextOut(hParentDC,65,35,"学科名称",lstrlen("学科名称"));
TextOut(hParentDC,230,35,"成绩",lstrlen("成绩"));
for(i=0;i<6;i++)
{
hgStudentSubjectWnd[i]=CreateWindowEx(0L,
"edit",
"StudentSubjectWnd",
WS_VISIBLE|WS_CHILD|ES_RIGHT|ES_READONLY,
15,35+(i+1)*25,170,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
hgStudentScoreWnd[i]=CreateWindowEx(0L,
"edit",
"StudentScoreWnd",
WS_CHILD|WS_VISIBLE|ES_CENTER,
225,35+(i+1)*25,40,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
}
TextOut(hParentDC,15,210,"总分",lstrlen("总分"));
hgStudentTotalScoreWnd=CreateWindowEx(0L,
"edit",
"StudentTotalScoreWnd",
WS_VISIBLE|WS_CHILD|ES_CENTER|ES_READONLY,
55,210,50,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
TextOut(hParentDC,120,210,"综合测评成绩",lstrlen("综合测评成绩"));
hgStudentFinaScoreWnd=CreateWindowEx(0L,
"edit",
"StudentFinaScore",
WS_VISIBLE|WS_CHILD|ES_CENTER|ES_READONLY,
225,210,40,15,
hParentWnd,
(HMENU)NULL,
hInst,
NULL);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -