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

📄 appframework.cpp

📁 Mouse Event API Programing
💻 CPP
字号:
#include "AppFramework.h"

static CAppFramework* g_pApp = NULL;

CAppFramework::CAppFramework()
: m_hInst(NULL)
, m_hWnd(NULL)
, m_pClassName(NULL)
, m_nPosX(0)
, m_nPosY(0)
, m_nWidth(0)
, m_nHeight(0)
{
	ZeroMemory(&m_WndClass, sizeof(WNDCLASS));
	g_pApp = this;
}

CAppFramework::~CAppFramework()
{}

BOOL CAppFramework::CreateWindows(HINSTANCE hInstance, LPSTR pClassName, int nWidth, int nHeight, int nCmdShow)
{
	int nSystemX = GetSystemMetrics(SM_CXSCREEN);
	int nSystemY = GetSystemMetrics(SM_CYSCREEN);

	m_nPosX = (nSystemX - nWidth) / 2;
	m_nPosY = (nSystemY - nHeight) / 2;
	m_nWidth = nWidth;
	m_nHeight = nHeight;

	m_hInst = hInstance;
	m_pClassName = pClassName;

	m_WndClass.cbClsExtra = 0;
	m_WndClass.cbWndExtra = 0;
	m_WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	m_WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
	m_WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	m_WndClass.hInstance = m_hInst;
	m_WndClass.lpfnWndProc = WndProc;
	m_WndClass.lpszClassName = m_pClassName;
	m_WndClass.lpszMenuName = NULL;
	m_WndClass.style = CS_VREDRAW | CS_HREDRAW;
	RegisterClass(&m_WndClass);

	m_hWnd = CreateWindow(m_pClassName, m_pClassName, WS_OVERLAPPEDWINDOW
						, m_nPosX, m_nPosY, m_nWidth, m_nHeight, NULL, NULL, m_hInst, NULL);

	if(m_hWnd == NULL)
	{
		return FALSE;
	}

	ShowWindow(m_hWnd, nCmdShow);

	return TRUE;
}

int CAppFramework::Run()
{
	MSG Message;
	ZeroMemory(&Message, sizeof(MSG));

	while(GetMessage(&Message, NULL, 0, 0))
	{
		TranslateMessage(&Message);
		DispatchMessage(&Message);
	}

	return (int)Message.wParam;
}

LRESULT CALLBACK CAppFramework::WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	g_pApp->MouseProc(hWnd, nMsg, wParam, lParam);
	return g_pApp->MSGProc(hWnd, nMsg, wParam, lParam);
}

LRESULT CAppFramework::MSGProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	switch(nMsg)
	{
	case WM_CREATE:
		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	}

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

HRESULT CAppFramework::MouseProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	switch(nMsg)
	{
	case WM_LBUTTONDOWN:
		break;

	case WM_LBUTTONUP:
		break;

	case WM_RBUTTONDOWN:
		break;

	case WM_RBUTTONUP:
		break;

	case WM_MBUTTONDOWN:
		break;

	case WM_MBUTTONUP:
		break;

	case WM_MOUSEMOVE:
		break;
	}

	return S_OK;
}

⌨️ 快捷键说明

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