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

📄 bankdlg.cpp

📁 实现一个银行营业厅排队程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    if(q.size()!=0){
	 itoa( q.front(), str, 10);
     q.pop();
     ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str);
	}
	ReleaseMutex(hMutex1);
	
}
Sleep(4000);
}
 return 0;
 }
 DWORD WINAPI CBankDlg::WinProc3( LPVOID lpParameter)
 {
char str[10];
	int ID=IDC_EDIT3;  
char str1[10]="暂停服务";
HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
while(TRUE)
{
if(m_window3)
    ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str1);
else{
WaitForSingleObject(hMutex1,INFINITE);
    if(q.size()!=0){
	 itoa( q.front(), str, 10);
     q.pop();

	 
     ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str);
	}
   ReleaseMutex(hMutex1);
	 

}
Sleep(3000);
}
 return 0;
 }


DWORD WINAPI CBankDlg::WinProc4( LPVOID lpParameter)
 {char str[10];
  int ID=IDC_EDIT6;
  char str1[10]="暂停服务";
  HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
  while(TRUE){
   if(m_window4)
 ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str1);

else{
	WaitForSingleObject(hMutex1,INFINITE);
    if(q.size()!=0){
	 itoa( q.front(), str, 10);
     q.pop();
	::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str);
	}
   ReleaseMutex(hMutex1);
	 
}
Sleep(5000);	    
}
 
 return 0;
 }



DWORD WINAPI CBankDlg::QUHAO1( LPVOID lpParameter)
{   char str[10];
	int ID=IDC_EDIT4;  
while(TRUE)
{ 

 if(m_btn1)
 {	 WaitForSingleObject(hMutex2,INFINITE);
     number++;
	 itoa( number, str, 10);
	 q.push(number);
	 
     m_btn1=FALSE;

	 HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
     ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str);
     ReleaseMutex(hMutex2);
	  }
Sleep(50);
}
 return 0;
}
 DWORD WINAPI CBankDlg::QUHAO2( LPVOID lpParameter)
 {
	 char str1[10];
	  int ID=IDC_EDIT4;   
while(TRUE)
{

 if(m_btn2)
 {	 WaitForSingleObject(hMutex2,INFINITE);
     	number++;
	 itoa( number, str1, 10);
	 q.push(number);
     m_btn2=FALSE;

	 HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
     ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str1);
	 ReleaseMutex(hMutex2);
	 }
Sleep(50);
}
 return 0;
 }

  DWORD WINAPI CBankDlg::QUHAO3( LPVOID lpParameter)
 {
	 char str1[10];
	  int ID=IDC_EDIT4;   
while(TRUE)
{

 if(m_btn2)
 {	 WaitForSingleObject(hMutex2,INFINITE);
     	number++;
	 itoa( number, str1, 10);
	 q.push(number);
     m_btn2=FALSE;

	 HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
     ::PostMessage(hwnd,WM_DATA,(WPARAM)ID,(LPARAM)str1);
	 ReleaseMutex(hMutex2);
	 }
Sleep(50);
}
 return 0;
 }



void CBankDlg::OnData(WPARAM wParam,LPARAM lParam)
{  
//	CClientDC dc(this);
	CString str=(char*)lParam;
	int ID=(int)wParam;
 //   dc.SetTextColor(RGB(255,44,55));
	if("暂停服务"==str)
( GetDlgItem (ID) ) ->SetFont( &my_CFont1);
 else( GetDlgItem (ID) ) ->SetFont( &my_CFont);
   SetDlgItemText(ID,str);


       if(IDC_EDIT4==ID)
	   {
		char str1[10];
       itoa(q.size()-1, str1, 10);
        SetDlgItemText(IDC_EDIT5,str1);
	   }
   int b=0;

   if(IDC_EDIT1==ID||IDC_EDIT2==ID||IDC_EDIT3==ID||IDC_EDIT6==ID)
  {   if("暂停服务"!=str)
   {
       
	   if(IDC_EDIT1==ID)b=1;
       else if(IDC_EDIT2==ID)b=2;
       else if(IDC_EDIT6==ID)b=3;
	   else b=4;
	   char string[200];
	   sprintf(string,"请第 %s 号客户到 %d 号窗口",str,b);
	   SetDlgItemText(IDC_TEXT,string);
	   


	   int num=q.size();
       char string1[200];
       sprintf(string1,"您前面还有 %d 位客户办理业务,请您稍候",num);
       SetDlgItemText(IDC_TEXT2,string1);
	 }
      

           bool pp=1;
	    while(pp)
		{  char string[200];
		   sprintf(string,"请第 %s 号客户到 %d 号窗口",str,b);
		   SetDlgItemText(IDC_TEXT3,string);
			   pp=0;

   }
		
		}    
	return;
	
      

}

void CBankDlg::OnData2(WPARAM wParam,LPARAM lParam)
{  
//	CClientDC dc(this);
	CString str=(char*)lParam;
	int ID=(int)wParam;
 //   dc.SetTextColor(RGB(255,44,55));
	if("暂停服务"==str)
( GetDlgItem (ID) ) ->SetFont( &my_CFont1);
 else( GetDlgItem (ID) ) ->SetFont( &my_CFont);
   SetDlgItemText(ID,str);


   if(IDC_EDIT4==ID)
   {char str1[10];
   itoa(q.size()-1, str1, 10);
   SetDlgItemText(IDC_EDIT5,str1);}
   int b=0;
   if(IDC_EDIT1==ID||IDC_EDIT2==ID||IDC_EDIT3==ID||IDC_EDIT6==ID)
  {   if("暂停服务"!=str)
   {
       
	   if(IDC_EDIT1==ID)b=1;
       else if(IDC_EDIT2==ID)b=2;
       else if(IDC_EDIT6==ID)b=3;
	   else b=4;

	 }
   }

       bool pp=1;
	   while(pp)
	   {  char string[200];
		   sprintf(string,"请第 %s 号客户到 %d 号窗口",str,b);
		   SetDlgItemText(IDC_TEXT3,string);
            Sleep(5000);//显示延时
	        pp=0;
		  
	   }

	

return;
}



//DEL DWORD WINAPI CBankDlg::WinProc2()
//DEL {
//DEL 
//DEL }

void CBankDlg::OnStatic1() 
{
	m_window1=!m_window1;
	
}

void CBankDlg::OnStatic2() 
{
    m_window2=!m_window2;
	
}

void CBankDlg::OnStatic3() 
{
	m_window3=!m_window3;
	
}

void CBankDlg::OnStatic4() 
{
	m_window4=!m_window4;
	
}



HBRUSH CBankDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	
	// TODO: Return a different brush if the default is not desired
	return m_brush;
}

void CBankDlg::OnStatictime() 
{CString strTime ;
CTime theTime;
theTime = CTime::GetCurrentTime();
strTime =theTime.Format("%H:%M:%S");
SetDlgItemText(IDC_STATICTIME,strTime);
}

void CBankDlg::OnTimer(UINT nIDEvent) 
{
CString strTime ;
CTime theTime;
theTime = CTime::GetCurrentTime();
strTime =theTime.Format("%H:%M:%S");
//时:分:秒的格式,格式可以随你需要变换,不用":"号,用"-"符号也可以。
SetDlgItemText(IDC_STATICTIME,strTime);
	
	CDialog::OnTimer(nIDEvent);
}

void CBankDlg::OnButton3() 
{
m_window1=!m_window1;
	
}

void CBankDlg::OnButton4() 
{
m_window2=!m_window2;	
}

void CBankDlg::OnButton5() 
{
m_window3=!m_window3;	
}

void CBankDlg::OnButton6() 
{
	m_btn2=TRUE;
	// TODO: Add your control notification handler code here
	
}

void CBankDlg::OnButton7() 
{
	m_window4=!m_window4;// TODO: Add your control notification handler code here
	
}


void CBankDlg::OnText() 
{
// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

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