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

📄 panedlg2.cpp

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CPaneDlg2 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;


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


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


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

/////////////////////////////////////////////////////////////////////////////
// CPaneDlg2 message handlers

void CPaneDlg2::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	// Do not call CDialog::OnPaint() for painting messages
	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 + 360;
					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-360,x,y);
			if (iResult == 0 && m_iStatusNo>360 && m_iStatusNo<=720) dc.DrawIcon(x, y, hIcon[1]);
			iDrawFlag=4;
			break;
		case 2:
			iResult = ChannelNoToPoint(m_iStatusNo-360,x,y);
			if (iResult == 0 && m_iStatusNo>360 && m_iStatusNo<=720) dc.DrawIcon(x, y, hIcon[2]);
			iDrawFlag=4;
			break;
		case 3:
			iResult = ChannelNoToPoint(m_iStatusNo-360,x,y);
			if (iResult == 0 && m_iStatusNo>360 && m_iStatusNo<=720) dc.DrawIcon(x, y, hIcon[3]);
			iDrawFlag=4;
			break;
	}
}

void CPaneDlg2::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	m_iCurrNo = PointToChannelNo(point) + 360;
	if (m_iCurrNo >360 && (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 + -