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

📄 panedlg3.cpp

📁 基于dialogic语音卡的IVR系统源代码
💻 CPP
字号:
// PaneDlg3.cpp : implementation file
//

#include "stdafx.h"
#include "AI2001.h"
#include "PaneDlg3.h"
#include "AI2001Dlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPaneDlg3 dialog
extern HICON	hIcon[8];
extern int m_ChannelStatus[1441];
extern int iDrawFlag;
extern int m_iStatusNo;

extern int m_iCurrNo;
extern int m_iTotal;


CPaneDlg3::CPaneDlg3(CWnd* pParent /*=NULL*/)
	: CDialog(CPaneDlg3::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPaneDlg3)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CPaneDlg3::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPaneDlg3)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPaneDlg3, CDialog)
	//{{AFX_MSG_MAP(CPaneDlg3)
	ON_WM_PAINT()
	ON_WM_RBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPaneDlg3 message handlers

void CPaneDlg3::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	dc.SetMapMode(MM_ANISOTROPIC);
	dc.SetWindowExt(400,400);
	dc.SetViewportExt(dc.GetDeviceCaps(LOGPIXELSX),
	dc.GetDeviceCaps(LOGPIXELSY));
	int i,j,iChannelNo;
	int iResult,x,y;
	switch(iDrawFlag)       //0:初始状态 1:更改局部状态-offhook2onhook 2:更改局部状态-onhook2offhook 3.更改局部状态-err status 
	{
		case 0:
			for(i=0;i<12;i++)
				for(j=0;j<30;j++)
				{
					iChannelNo = i*30+j+1 + 720;
					if(i==10 && j==5)
					{
						i=10;
					}
					switch(m_ChannelStatus[iChannelNo])
					{
						case 0:
							dc.DrawIcon(BEGIN_X+j*INTERVAL_X, BEGIN_Y+i*INTERVAL_Y, hIcon[0]);
							break;
						case 1:
							dc.DrawIcon(BEGIN_X+j*INTERVAL_X, BEGIN_Y+i*INTERVAL_Y, hIcon[1]);
							break;
						case 2:
							dc.DrawIcon(BEGIN_X+j*INTERVAL_X, BEGIN_Y+i*INTERVAL_Y, hIcon[2]);
							break;
						case 3:
							dc.DrawIcon(BEGIN_X+j*INTERVAL_X, BEGIN_Y+i*INTERVAL_Y, hIcon[3]);
							break;
					}
				}


			iDrawFlag = 4;
			break;
		case 1:
			iResult = ChannelNoToPoint(m_iStatusNo-720,x,y);
			if (iResult == 0 && m_iStatusNo>720 && m_iStatusNo<=1080) dc.DrawIcon(x, y, hIcon[1]);
			iDrawFlag=4;
			break;
		case 2:
			iResult = ChannelNoToPoint(m_iStatusNo-720,x,y);
			if (iResult == 0 && m_iStatusNo>720 && m_iStatusNo<=1080) dc.DrawIcon(x, y, hIcon[2]);
			iDrawFlag=4;
			break;
		case 3:
			iResult = ChannelNoToPoint(m_iStatusNo-720,x,y);
			if (iResult == 0 && m_iStatusNo>720 && m_iStatusNo<=1080) dc.DrawIcon(x, y, hIcon[3]);
			iDrawFlag=4;
			break;
	}

	// TODO: Add your message handler code here
	
	// Do not call CDialog::OnPaint() for painting messages
}

void CPaneDlg3::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	m_iCurrNo = PointToChannelNo(point) + 720;
	if (m_iCurrNo >720 && (m_iCurrNo <= m_iTotal)) 
	{
		CMenu menu;
		CRect rect;
		this->GetWindowRect(rect);
		menu.LoadMenu(IDR_MYMENU);
		
		char szTemp[20];
		sprintf(szTemp,"通道号:%d",m_iCurrNo);
		menu.ModifyMenu(0, MF_BYCOMMAND, 0, szTemp);

		menu.EnableMenuItem(ID_MENUITEM_ONHOOK,MF_ENABLED);
		if (m_ChannelStatus[m_iCurrNo] != 2)
			menu.EnableMenuItem(ID_MENUITEM_ONHOOK,MF_GRAYED);
		menu.EnableMenuItem(ID_MENUITEM_RESET,MF_ENABLED);
		if (m_ChannelStatus[m_iCurrNo] != 3)
			menu.EnableMenuItem(ID_MENUITEM_RESET,MF_GRAYED);
		menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,rect.left+point.x,rect.top+point.y,this);
	}	
	CDialog::OnRButtonDown(nFlags, point);
}

⌨️ 快捷键说明

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