sippanel.cpp

来自「这个是可以用于windos mobile平台下面的软键盘的代码」· C++ 代码 · 共 88 行

CPP
88
字号
// SipPanel.cpp: implementation of the CSipPanel class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MRSSIP.h"
#include "SipPanel.h"
#include "resource.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSipPanel::CSipPanel()
	: m_callback(NULL)
{
}

CSipPanel::~CSipPanel()
{
}


BEGIN_MESSAGE_MAP(CSipPanel, CWnd)
	//{{AFX_MSG_MAP(CSipPanel)
	ON_WM_PAINT()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CSipPanel message handlers

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

	CDC memDc;
	if (!memDc.CreateCompatibleDC(&dc)) return;

	m_bmpNormal.LoadBitmap(IDB_SIP_NORMAL);

	HBITMAP m_hOldBitmap = (HBITMAP)::SelectObject(memDc.GetSafeHdc(), m_bmpNormal);
	dc.BitBlt(0, 0, 240, 80, &memDc, 0, 0, SRCCOPY);
	::SelectObject(memDc.GetSafeHdc(), m_hOldBitmap);
	memDc.DeleteDC();

	m_bmpNormal.DeleteObject();
}

void CSipPanel::OnLButtonUp(UINT nFlags, CPoint point) 
{
	if (m_callback==NULL) return;

	if (point.x<80)
	{
		TCHAR* s = _T("1");
		m_callback->SendString(s, 1);
		return;
	}
	
	if (point.x<160)
	{
		TCHAR* s = _T("A");
		m_callback->SendString(s, 1);
		return;
	}
	
	if (point.x<240)
	{
		TCHAR* s = _T("3");
		m_callback->SendString(s, 1);
		return;
	}
}

void CSipPanel::RegisterCallback(IIMCallback *lpIMCallback)
{
	m_callback = lpIMCallback;
}

⌨️ 快捷键说明

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