📄 alert.c
字号:
free (pos_char); free (dx_char); } SetTextColor (hdc, temp1); if (pItem->bSelected) SetBkColor (hdc, temp2); } SetBrushColor (hdc, nOldBrushColor);}static void Draw (HWND hDlg, HDC hdc) { RECT rcClient; PLSTHDR p1 = NULL; PSUBITEMDATA p2 = NULL; PITEMDATA p3 = NULL; int i, j; int nOldBkColor, nOldBrushColor; int temp; PLSTVWDATA pLVInternalData; GetClientRect (hDlg, &rcClient); pLVInternalData = (PLSTVWDATA) GetWindowAdditionalData2 (hDlg); nOldBkColor = SetBkColor (hdc, PIXEL_lightwhite); nOldBrushColor = SetBrushColor (hdc, PIXEL_lightwhite); FillBox (hdc, rcClient.left, rcClient.top, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); p3 = pLVInternalData->pItemHead; for (j = 1; j <= pLVInternalData->nRows; j++) { p1 = pLVInternalData->pLstHead; p2 = p3->pSubItemHead; if (p3->bSelected) { temp = SetBrushColor (hdc, RGB2Pixel (hdc, 0, 0, 180)); FillBox (hdc, rcClient.left, (j - 1) * pLVInternalData->nItemHeight + pLVInternalData->nHeadHeight, rcClient.right - rcClient.left, pLVInternalData->nItemHeight); SetBrushColor (hdc, temp); } else { temp = SetBrushColor (hdc, PIXEL_lightwhite); FillBox (hdc, rcClient.left, (j - 1) * pLVInternalData->nItemHeight + pLVInternalData->nHeadHeight, rcClient.right - rcClient.left, pLVInternalData->nItemHeight); SetBrushColor (hdc, temp); } for (i = 1; i <= pLVInternalData->nCols; i++) { sDrawTextToSubItem1(hdc, p2->pszInfo, j, i, p3, pLVInternalData); p1 = p1->pNext; p2 = p2->pNext; } p3 = p3->pNext; } /******************************draw listview header*******************************************/ p1 = pLVInternalData->pLstHead; SetBkColor (hdc, PIXEL_lightgray); SetBrushColor (hdc, PIXEL_lightgray); /* Draw3DControlFrame (hdc, rcClient.left, rcClient.top, rcClient.right, rcClient.top + COLHEIGHTDEFAULTS, PIXEL_lightgray, TRUE); */ FillBox (hdc, rcClient.left, rcClient.top, rcClient.right - rcClient.left, pLVInternalData->nHeadHeight); for (i = 1; i <= pLVInternalData->nCols; i++) {#ifdef _FLAT_WINDOW_STYLE DrawFlatControlFrameEx (hdc, p1->x - pLVInternalData->nOriginalX + 1, p1->y - pLVInternalData->nOriginalY, p1->x - pLVInternalData->nOriginalX + p1->width - 1, p1->y + p1->height, PIXEL_lightgray, 0, p1->up);#else Draw3DControlFrame (hdc, p1->x - pLVInternalData->nOriginalX + 1, p1->y - pLVInternalData->nOriginalY, p1->x - pLVInternalData->nOriginalX + p1->width - 1, p1->y + p1->height, PIXEL_lightgray, p1->up);#endif sDrawText1(hdc, p1->x - pLVInternalData->nOriginalX + 1, p1->y, p1->width - 1, p1->height, p1->pTitle); p1 = p1->pNext; } /* if (p1!=NULL) { Draw3DControlFrame (hdc, p1->x - pLVInternalData->nOriginalX, rcClient.top, rcClient.right, rcClient.top + COLHEIGHTDEFAULTS, PIXEL_lightgray, p1->up); sDrawText (hdc, p1->x - pLVInternalData->nOriginalX , p1->y, p1->width, p1->height, p1->pTitle); SetBrushColor (hdc, PIXEL_lightgray } */ /******************************draw listview header*******************************************/ //rect.top = rcClient.top ; // rect.left = rcClient.left + sGetItemWidth(pLVInternalData); // rect.right = rcClient.right; // rect.bottom = rcClient.bottom; // SetBrushColor (hdc, nOldBrushColor); // SetBkColor (hdc, nOldBkColor); /******************************draw listview header*******************************************/}static void forwardDate(HWND hDlg){ int y,m,d; char buff[20]; y = report_date.year; m = report_date.month; d = report_date.day; switch (period){ case DAY : { if( (m != 2 && d < 30) ||(m == 2 && d < 28)){ d ++; break; } else if(d ==30 && m !=2){ if( m == 4 || m ==6 || m ==9 || m ==11 ){ d = 1; m ++; break;} else{ d ++; break; } } else if(d == 31 && m == 12 ) { d = 1; m =1; y ++; break; } else if(m == 2 && d == 28){ if(( y%4 == 0 && y % 100 !=0) || (y % 400 == 0)){ d ++; break; } else{ d = 1; m ++; break; } } else { d = 1; m ++; break; } sprintf(buff, "%02d/%02d/%04d",m,d,y); SetDlgItemText(hDlg, IDC_DATE,buff); } case MONTH: { if (m == 12){ m = 1; y ++; } else m++; sprintf(buff, "%04d年%02d月",y,m); SetDlgItemText(hDlg, IDC_DATE,buff); }break; case WEEK: { }break; } report_date.year = y; report_date.month = m ; report_date.day = d; }static void backDate(HWND hDlg){ int y,m,d; char buff[20]; y = report_date.year; m = report_date.month; d = report_date.day; switch (period){ case DAY: break; case MONTH:{ if (m == 1){ m = 12; y --; } else m --; sprintf(buff, "%04d年%02d月",y,m); SetDlgItemText(hDlg, IDC_DATE,buff); } break; case WEEK: break; } report_date.year = y; report_date.month = m ; report_date.day = d; }static void InitAlert (HWND hDlg){ FILE *fp; time_t t; struct tm* tm; time(&t); tm = localtime(&t); report_date.year = tm->tm_year + 1900; report_date.month = tm->tm_mon+1; report_date.day = tm->tm_mday; sprintf(date, "%02d/%02d/%04d",tm->tm_mon+1,tm->tm_mday,tm->tm_year + 1900); SetDlgItemText(hDlg, IDC_DATE,date); fp = fopen("alarmfile","wb+"); fclose(fp); fp = fopen("reportfile","wb+"); fclose(fp);}static void download_item (HWND hDlg ){ int i, j; FILE *fp; char buff[20]; if((fp = fopen("alarmfile","ab+")) == NULL){ printf("can't open the file\n"); } else printf("can open the file\n"); if(IsWindowVisible (hDlg)){ for( i=1; i<= alarm_number-1; i++){ subdata.nItem = i; for (j = 1; j <= ALARM_LIST; j++) { subdata.subItem = j; //// SendMessage (hDlg, LVM_GETSUBITEMTEXT, 0, (LPARAM)&subdata) ; // sprintf(buff,"%s",subdata.pszText); // printf("%s\n",buff); // printf("sizeof(subdata.pszText)=%d\n",strlen(subdata.pszText)); fwrite(&subdata.pszText,strlen(subdata.pszText),1,fp); } } } fclose(fp); alarm_clear(hDlg); }static void alarm_happen (HWND hDlg ,PALARMTABLE alarm ){ int i, j; char buff1[10]; char buff2[10]; char startTime[15]; time_t t; struct tm* tm; time(&t); tm = localtime(&t); sprintf(startTime, "%02d/%02d %02d:%02d:%02d", tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); item.nItem = alarm_number; SendMessage (hDlg, LVM_ADDITEM, 0, (LPARAM) & item); subdata.nItem =alarm_number; sprintf (buff2, "%.2f", alarm->value); sprintf (buff1, "%d ", alarm_number); for (j = 1; j <= ALARM_LIST; j++) { subdata.subItem = j; switch(j){ case 1 : subdata.pszText = buff1;break; case 2 : subdata.pszText = alarm->type;break; case 3 : subdata.pszText = alarm->from;break; case 4 : subdata.pszText = startTime;break; case 5 : subdata.pszText = "";break; case 6 : subdata.pszText = buff2;break; } SendMessage (hDlg, LVM_SETITEMCOLOR, alarm_number, PIXEL_green); SendMessage (hDlg, LVM_FILLSUBITEM, 0, (LPARAM) & subdata); } alarm_number++;}static void alarm_solve (HWND hDlg ,int num){ int i; gal_pixel alarm_bkcol; alarm_bkcol = RGB2Pixel(GetClientDC (hDlg),0,100,12); InvalidateRect (hDlg, NULL, FALSE); SendMessage (hDlg, LVM_SETITEMCOLOR, num, PIXEL_red);}static void alarm_over (HWND hDlg ,int num){ int i; char endTime[15]; time_t t; struct tm* tm; gal_pixel alarm_bkcol; alarm_bkcol = RGB2Pixel(GetClientDC (hDlg),127,49,12); time(&t); tm = localtime(&t); sprintf(endTime, "%02d/%02d %02d:%02d:%02d", tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); subdata.nItem = num; subdata.subItem =5; subdata.pszText = endTime; InvalidateRect (hDlg, NULL, FALSE); SendMessage (hDlg, LVM_FILLSUBITEM, 0, (LPARAM)&subdata) ; SendMessage (hDlg,LVM_SETITEMCOLOR, num, alarm_bkcol) ;}static void alarm_clear (HWND hDlg ){SendMessage (hDlg, LVM_DELALLITEM, 0, 0) ;alarm_number = 1;}void DlgConfAlert(HWND hWnd){ DlgEvent.controls = CtrlEvent; DialogBoxIndirectParam (&DlgEvent, hWnd, EventProc, 0L);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -