myapp.cpp

来自「Mouse Event API Programing」· C++ 代码 · 共 97 行

CPP
97
字号
#include "MyApp.h"

CMyApp::CMyApp()
: m_pStr1(NULL)
, m_pStr2(NULL)
, m_pStr3(NULL)
, m_pStr4(NULL)
{}

CMyApp::~CMyApp()
{
	delete[] m_pStr1;
	delete[] m_pStr2;
	delete[] m_pStr3;
	delete[] m_pStr4;
}

LRESULT CMyApp::MSGProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;	

	switch(nMsg)
	{
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		TextOut(hdc, 10, 10, m_pStr1, lstrlen(m_pStr1));
		TextOut(hdc, 10, 30, m_pStr2, lstrlen(m_pStr2));
		TextOut(hdc, 10, 50, m_pStr3, lstrlen(m_pStr3));
		TextOut(hdc, 10, 70, m_pStr4, lstrlen(m_pStr4));
		EndPaint(hWnd, &ps);
		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}

	return(DefWindowProc(hWnd, nMsg, wParam, lParam));
}

HRESULT CMyApp::MouseProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	switch(nMsg)
	{
	case WM_LBUTTONDOWN:		
		m_nPos.x = LOWORD(lParam);
		m_nPos.y = HIWORD(lParam);
		m_bState = TRUE;
		break;

	case WM_LBUTTONUP:
		m_bState = FALSE;
		break;

	case WM_RBUTTONDOWN:
		break;

	case WM_RBUTTONUP:
		break;

	case WM_MBUTTONDOWN:
		break;

	case WM_MBUTTONUP:
		break;

	case WM_MOUSEMOVE:

		POINT Pos;

		m_pStr1 = new char[128];
		m_pStr2 = new char[128];
		m_pStr3 = new char[128];
		m_pStr4 = new char[128];

		m_nPos.x = LOWORD(lParam);
		m_nPos.y = HIWORD(lParam);

		wsprintf(m_pStr1, "WM_MOUSEMOVE : PosX : %d,   PosY : %d", m_nPos.x, m_nPos.y);

		GetCursorPos(&Pos);
		wsprintf(m_pStr2, "GetCursorPos         : PosX : %d,   PosY : %d", Pos.x, Pos.y);

		ScreenToClient(hWnd, &Pos);
		wsprintf(m_pStr3, "ScreenToClient       : PosX : %d,   PosY : %d", Pos.x, Pos.y);

		ClientToScreen(hWnd, &Pos);
		wsprintf(m_pStr4, "ClientToScreen       : PosX : %d,   PosY : %d", Pos.x, Pos.y);

		InvalidateRect(hWnd, NULL, TRUE);

		break;		
	}	

	return S_OK;
}

⌨️ 快捷键说明

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