commdlg.cpp

来自「这是一个在正实际应用当中运行的电力监控系统软件源代码」· C++ 代码 · 共 1,742 行 · 第 1/5 页

CPP
1,742
字号
 sprintf(str, "%03d", (lpStaParam+stano)->Interval);
 SendDlgItemMessage(HWindow,ID_Interval,WM_CLEAR, 0, 0);
 SetDlgItemText(HWindow,ID_Interval,(LPSTR)str);

 sprintf(str, "%03d", (lpStaParam+stano)->RepeatTimes);
 SendDlgItemMessage(HWindow,ID_RepTimes,WM_CLEAR, 0, 0);
 SetDlgItemText(HWindow,ID_RepTimes,(LPSTR)str);  
                                                  
 sprintf(str, "%4d", (lpStaParam+stano)->DeadValue);
 SendDlgItemMessage(HWindow,ID_Dead,WM_CLEAR, 0, 0);
 SetDlgItemText(HWindow,ID_Dead,(LPSTR)str);

 CheckDlgButton(HWindow, ID_PollORCdt, (lpStaParam+stano)->PollCdt);

}

void TPollSetDialog::GetPollSetData(void)
{
  char str[6]; int ret;
  GetDlgItemText(HWindow,ID_YcStart,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->YCB[0]=atoi(str);
  }
  else (lpStaParam+stano)->YCB[0]=atoi(str);


  GetDlgItemText(HWindow,ID_YxStart ,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->YXB[0]=atoi(str);
  }
  else (lpStaParam+stano)->YXB[0]=atoi(str);


  GetDlgItemText(HWindow,ID_PulStart,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->KWHB[0]=atoi(str);
  }
  else (lpStaParam+stano)->KWHB[0]=atoi(str);

  GetDlgItemText(HWindow,ID_DownRtu,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->STATIONNO=atoi(str);
  }
  else (lpStaParam+stano)->STATIONNO=atoi(str);


  GetDlgItemText(HWindow,ID_ConStart,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->ConStartBoard=atoi(str);
  }
  else (lpStaParam+stano)->ConStartBoard=atoi(str);


  GetDlgItemText(HWindow,ID_Interval,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"间隔输入错误","",MB_OK);
   (lpStaParam+stano)->Interval=atoi(str);
  }
  else (lpStaParam+stano)->Interval=atoi(str);
  if ((lpStaParam+stano)->Interval<5) (lpStaParam+stano)->Interval=5;  		//在3秒~~60秒之间
  if ((lpStaParam+stano)->Interval>200) (lpStaParam+stano)->Interval=200;
  (lpStaParam+stano)->ProcCount=(lpStaParam+stano)->Interval*10;


  GetDlgItemText(HWindow,ID_Dead,str,5);
  ret=atoi(str);
  if (ret>=4096)
  {
    MessageBox(GetFocus(),"地址输入错误","",MB_OK);
  }
  else (lpStaParam+stano)->DeadValue=(atoi(str)&0xfff);



  GetDlgItemText(HWindow,ID_RepTimes ,str,4);
  ret=atoi(str);
  if (ret>=256)
  { MessageBox(GetFocus(),"地址输入错误","",MB_OK);
   (lpStaParam+stano)->RepeatTimes=atoi(str);
  }
  else (lpStaParam+stano)->RepeatTimes=atoi(str);


  (lpStaParam+stano)->PollCdt = IsDlgButtonChecked(HWindow, ID_PollORCdt);
					  //0,1,2....未选中.未选中,灰色

}


void TPollSetDialog::WMCommand(RTMessage msg)
{
 TDialog::WMCommand(msg);

 switch(msg.WParam)
   {
    case ID_SavePBt:  case IDOK:
         GetPollSetData();
         SaveStaParam();
         SaveChParam();    
	 break;
    case ID_ExitPBt:case IDCANCEL:
//         GetStaData();
//         ReadChParam();
         ReadStaParam();
//         CloseWindow();
         break;
   }
}


void ReadStaParam()
{
    OFSTRUCT OfS;
    HFILE hf = OpenFile ((LPSTR)"c:\\TCZ\\STADEF.dat", (LPOFSTRUCT)&OfS, OF_READ);
    if (hf != HFILE_ERROR)
       {
        _lread(hf, lpStaParam, sizeof(STATIONPARAM)*TotalStaNum);
        _lclose(hf);
       }
}

void SaveStaParam()
{
    OFSTRUCT OfS;

    HFILE hf = OpenFile ((LPSTR)"c:\\TCZ\\STADEF.dat", (LPOFSTRUCT)&OfS, OF_CREATE);
    if (hf != HFILE_ERROR)
       {
        _lwrite(hf, lpStaParam, sizeof(STATIONPARAM)*TotalStaNum);
        _lclose(hf);
       }
}
//--------------------------------------------------------------------------//
TSystemCfgDialog::TSystemCfgDialog (PTWindowsObject AParent)
               : TDialog(AParent, "SYSTEMCFG_DLG")
{
}

void TSystemCfgDialog::WMInitDialog(RTMessage msg)
{
 TDialog::WMInitDialog(msg);

 char *NetP[]={"NET BUEI","TCP/IP","IPX/SPX"};
 char *SysP[]={"WDZ-9主站","DF-8100综合监控系统","JF100计费系统","PD100配电系统","其它"};
 char *CommP[]={"不配置多串口卡","一块","两块","三块","四块","五块","六块","七块","八块"};
 CheckRadioButton(HWindow,ID_NodeABRd,ID_NodeBBRd,ID_NodeABRd+syscfg->GetNode());
 for (int i=0; i<3;i++)
      SendDlgItemMessage(HWindow,ID_NetPCBox,CB_ADDSTRING,0,(LONG)(LPSTR)NetP[i]);
 SendDlgItemMessage(HWindow,ID_NetPCBox,CB_SETCURSEL,(WPARAM)syscfg->GetNetProto(),0);

 for (i=0; i<5; i++)
      SendDlgItemMessage(HWindow,ID_SysPCBox,CB_ADDSTRING,0,(LONG)(LPSTR)SysP[i]);
 SendDlgItemMessage(HWindow,ID_SysPCBox,CB_SETCURSEL,(WPARAM)syscfg->GetSysProto(),0);

 for (i=0; i<9; i++)
      SendDlgItemMessage(HWindow,ID_CommPorts,CB_ADDSTRING,0,(LONG)(LPSTR)CommP[i]);
 SendDlgItemMessage(HWindow,ID_CommPorts,CB_SETCURSEL,(WPARAM)syscfg->GetCommCardNums(),0);

 CheckDlgButton(HWindow, ID_YcSelect, syscfg->GetYcSelect()&0xf);
 CheckDlgButton(HWindow, ID_HaveCTK, syscfg->GetYcSelect()>>4);
}

void TSystemCfgDialog::WMCommand(TMessage &msg)
{
 TDialog::WMCommand(msg);

 switch(msg.WParam)
   {
    case ID_NodeABRd:
    case ID_NodeBBRd:
         CheckRadioButton(HWindow,ID_NodeABRd,ID_NodeBBRd,msg.WParam);
         break;
//    case ID_NetPCBox:
//         break;
//    case ID_SysPCBox:
/*    case ID_SToMainPBt:
         PostMessage (hMainWindow, WM_SWITCHTOMAIN, (WORD)0, (LONG)0);
         break;
    case ID_SToBackPBt:
         PostMessage (hMainWindow, WM_SWITCHTOBACK, (WORD)0, (LONG)0);
         break;  shy 97.7.9*/
    case IDOK:
         if (IsDlgButtonChecked(HWindow, ID_NodeABRd)==1) syscfg->SetNode(0);
           else if (IsDlgButtonChecked(HWindow, ID_NodeBBRd)==1) syscfg->SetNode(1);
         PostMessage (hMainWindow, WM_NODESWITCH, (WORD)0, (LONG)0);
		 UINT tmp = (UINT)SendDlgItemMessage(HWindow, ID_NetPCBox, CB_GETCURSEL, 0, 0);
         syscfg->SetNetProto((BYTE)tmp); 
         tmp =(UINT) SendDlgItemMessage(HWindow, ID_SysPCBox, CB_GETCURSEL, 0, 0);
         syscfg->SetSysProto((BYTE)tmp); 

         tmp = (UINT)SendDlgItemMessage(HWindow, ID_CommPorts, CB_GETCURSEL, 0, 0);
         syscfg->SetCommCardNums((BYTE)tmp); 
         BYTE TEMP=(BYTE)IsDlgButtonChecked(HWindow, ID_YcSelect)&0xf|
                   (BYTE)IsDlgButtonChecked(HWindow, ID_HaveCTK)<<4;
//         syscfg->SetYcSelect((BYTE)IsDlgButtonChecked(HWindow, ID_YcSelect));
         syscfg->SetYcSelect(TEMP);
         syscfg->SaveData();

//         if (HardwareInstallFlag[CTKBOARD]) SwitchToMain();
         if (syscfg->GetNetProto()==1) ShowWindow(pTcpWin->HWindow,SW_RESTORE);
         CloseWindow(IDOK);
         break;
   }
}
void CheckBaudRate(CTKSIO FAR *lpctk)
{
	if (lpctk->BaudRate[0]==0) lpctk->BaudRate[0]=3072;
	if (lpctk->BaudRate[1]==0) lpctk->BaudRate[1]=3072;
	if (lpctk->BaudRate[2]==0) lpctk->BaudRate[2]=3072;
	if (lpctk->BaudRate[3]==0) lpctk->BaudRate[3]=3072;
	if (lpctk->BaudRate[4]==0) lpctk->BaudRate[4]=3072;
	if (lpctk->BaudRate[5]==0) lpctk->BaudRate[5]=3072;
	if (lpctk->BaudRate[6]==0) lpctk->BaudRate[6]=3072;
	if (lpctk->BaudRate[7]==0) lpctk->BaudRate[7]=3072;
	if (lpctk->BaudRate[8]==0) lpctk->BaudRate[8]=3072;
	if (lpctk->BaudRate[9]==0) lpctk->BaudRate[9]=3072;
	if (lpctk->BaudRate[10]==0) lpctk->BaudRate[10]=3072;
	if (lpctk->BaudRate[11]==0) lpctk->BaudRate[11]=3072;
}
void ChanelStatus::WMInitDialog(TMessage& msg)
{
char ChName[20],temp[30],no;
char *s[8]={"通道未用","通道关闭","通讯中断","字符无效","失       步","误码率高","空    发","通道正常"};
		sprintf(temp, "%10d",lpChannelParam->ErrDataNum);
		SetDlgItemText(HWindow, ID_ErrDatas, (LPSTR)temp);
		sprintf(temp, "%10d",lpChannelParam->InvalidCharNum);
		SetDlgItemText(HWindow, ID_ErrDatas+1, (LPSTR)temp);

	  	DWORD chs = lpChannelParam->CHStatus;
      	if (!lpChannelParam->CHValidFlag)  no=0;
        else if (!(chs&ChOpen)) no=1;
		else if (chs&CommBreakFlag1) no=2;
		else if (chs&CharInvFlag1)  no=3;
		else if (chs&NoSyncFlag1) no=4;
		else if (chs&ErrDataFlag1) no=5;
		else if (chs&NoTxFlag1) no=6;
		else no=7;
	  wsprintf (temp,"%s",s[no]);
	  SetDlgItemText(HWindow, ID_ErrDatas+2, temp);

for (int i=0; i<TotalChNum; i++)
     {
      sprintf(ChName, "  %2d 号 通 道", i);
      SendDlgItemMessage(HWindow, ID_ChanelList, LB_ADDSTRING, i, (LONG)(LPSTR)ChName);
	 }
SendDlgItemMessage(HWindow, ID_ChanelList, LB_SETCURSEL, 0, 0);
SetTimer (HWindow, 5, 1000U, NULL);

}
void ChanelStatus::WMCommand(TMessage &msg)
{
 TDialog::WMCommand(msg);
char temp[30];BYTE no;
char *s[8]={"通道未用","通道关闭","通讯中断","字符无效","失       步","误码率高","空    发","通道正常"};
BYTE CHno = SendDlgItemMessage(HWindow,ID_ChanelList , LB_GETCURSEL, 0, 0);
switch(msg.WParam)
	{
	case  ID_ChanelList:
	  sprintf(temp, "%10d",(lpChannelParam+CHno)->ErrDataNum);
      SetDlgItemText(HWindow, ID_ErrDatas, (LPSTR)temp);
	  sprintf(temp, "%10d",(lpChannelParam+CHno)->InvalidCharNum);
	  SetDlgItemText(HWindow, ID_ErrDatas+1, (LPSTR)temp);
	  DWORD chs = (lpChannelParam+CHno)->CHStatus;
      if (!(lpChannelParam+CHno)->CHValidFlag)  no=0; 
      else if (!(chs&ChOpen)) no=1;
	  else if (chs&CommBreakFlag1) no=2;
	  else if (chs&CharInvFlag1)  no=3;
	  else if (chs&NoSyncFlag1) no=4;
	  else if (chs&ErrDataFlag1) no=5;
	  else if (chs&NoTxFlag1) no=6;
	  else no=7;
      wsprintf (temp,"%s",s[no]);
	  SetDlgItemText(HWindow, ID_ErrDatas+2, (LPSTR)temp);
      break;
    case    IDOK:
    case    IDCANCEL:
        KillTimer (HWindow, 5);
            break;
	}
}
void ChanelStatus::WMTimer(TMessage &msg)
{
char temp[30];BYTE no;
char *s[8]={"通道未用","通道关闭","通讯中断","字符无效","失       步","误码率高","空    发","通道正常"};
BYTE CHno = SendDlgItemMessage(HWindow,ID_ChanelList , LB_GETCURSEL, 0, 0);
switch(msg.WParam)
	{
	case  5:
	  sprintf(temp, "%10d",(lpChannelParam+CHno)->ErrDataNum);
      SetDlgItemText(HWindow, ID_ErrDatas, (LPSTR)temp);
	  sprintf(temp, "%10d",(lpChannelParam+CHno)->InvalidCharNum);
	  SetDlgItemText(HWindow, ID_ErrDatas+1, (LPSTR)temp);
	  DWORD chs = (lpChannelParam+CHno)->CHStatus;
      if (!(lpChannelParam+CHno)->CHValidFlag)  no=0; 
      else if (!(chs&ChOpen)) no=1;
	  else if (chs&CommBreakFlag1) no=2;
	  else if (chs&CharInvFlag1)  no=3;
	  else if (chs&NoSyncFlag1) no=4;
	  else if (chs&ErrDataFlag1) no=5;
	  else if (chs&NoTxFlag1) no=6;
	  else no=7;
      wsprintf (temp,"%s",s[no]);
	  SetDlgItemText(HWindow, ID_ErrDatas+2, (LPSTR)temp);
      break;
    }
}

TEnterPassDlg::TEnterPassDlg(PTWindowsObject AParent, int ResourceId)
        : TDialog (AParent, ResourceId)
{
    Text[0] = 0;
    new TEdit (this, IDE_ENTERPASS, sizeof (Text));
    TransferBuffer = Text;
};

//TEnterPassDlg::~TEnterPassDlg ()
//{
    //if (Edit) delete Edit;
//}

TModiPassDlg::TModiPassDlg(PTWindowsObject AParent, int ResourceId)
        : TDialog (AParent, ResourceId)
{
    Text[0] = 0;
	new TEdit (this, IDE_NEWPASS, sizeof(Text));
    TransferBuffer=Text;
};

//TModiPassDlg::~TModiPassDlg()
//{
	//if (Edit1) delete Edit1;
    //if(Edit2) delete Edit2;
//}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?