⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alert.c

📁 采用MINIGUI开发的一套GUI界面
💻 C
📖 第 1 页 / 共 2 页
字号:
          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 + -