IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 可视化编程——实验一 -> 正文阅读

[游戏开发]可视化编程——实验一

这个实验的难点在于把下面这首诗竖向排列
“故人西辞黄鹤楼”,
“烟花三月下扬州”,
“孤帆远影碧空尽”,
“唯见长江天际流”,

#include<windows.h>
long WINAPI WndProc
(
	HWND hWnd,
	UINT iMessage,
	UINT wParam,
	LONG lParam
);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);

//-------------------------------主函数--------------------------------------------------
int WINAPI WinMain(
	HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPSTR lpCmdLine,
	int nCmdShow)
{
	MSG Message;
	if (!InitWindowsClass(hInstance))	return FALSE;
	if (!InitWindows(hInstance, nCmdShow))return FALSE;
	while (GetMessage(&Message, 0, 0, 0))//消息循环
	{
		TranslateMessage(&Message);
		DispatchMessage(&Message);
	}
	return Message.wParam;
}
//-----------------------------------消息处理函数-----------------------------------
long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam)
{

	HPEN hP;
	HBRUSH hB;

	static long nXChar, nYChar;
	HDC hDC;   //定义指向设备上下文的句柄	
	short x;
	TEXTMETRIC tm;
	short LnCount = 4;
	PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构体变量
	const static  TCHAR* textbuf[] =
	{
	L"故人西辞黄鹤楼",
	L"烟花三月下扬州",
	L"孤帆远影碧空尽",
	L"唯见长江天际流",
	
	};
	switch (iMessage)  //处理消息
	{
	
	case WM_PAINT: 				//处理重画消息
		hDC = BeginPaint(hWnd, &PtStr); 	//开始绘画

		for (int i = 4; i > 0; i--)
		{
			nXChar = 350 +( i+1) * 25;
			nYChar = 10;
			for (int j = 0; j < 7; j++)
			{
				nYChar = 10 + j * 25;
				TextOut(hDC, nXChar, nYChar, (LPCWSTR)textbuf[4-i] + j, 1);
			}
		}
		
		SetMapMode(hDC, MM_TEXT);
		hP = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
		SelectObject(hDC, hP);

		MoveToEx(hDC, 80, 70, NULL);
		LineTo(hDC, 40, 10);
		MoveToEx(hDC, 40,10 , NULL);
		LineTo(hDC, 120, 10);
		MoveToEx(hDC, 80, 70, NULL);
		LineTo(hDC, 120, 10);

		Ellipse(hDC, 40, 70, 120, 160);

		MoveToEx(hDC, 80, 160, NULL);
		LineTo(hDC, 50, 190);
		LineTo(hDC, 50, 220);
		LineTo(hDC, 110, 220);
		LineTo(hDC, 110, 190);
		LineTo(hDC, 80, 160);

		hB = (HBRUSH)GetStockObject(BLACK_BRUSH);
		SelectObject(hDC, hB);
		RoundRect(hDC, 180, 10, 260, 70, 10, 10);
		Pie(hDC, 180, 70, 260, 160, 210, 70, 230, 70);
		Rectangle(hDC, 180, 160, 260, 220);
		EndPaint(hWnd, &PtStr);
		return 0;
	case WM_DESTROY: 			//结束应用程序
		PostQuitMessage(0);
		return 0;
	default:		//其他消息处理程序
		return(DefWindowProc(hWnd, iMessage, wParam, lParam));
	}
}
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow)
{
	HWND hWnd;
	hWnd = CreateWindow(L"Bitmap", L"202可视化_实验一",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		NULL,
		NULL,
		hInstance,
		NULL);
	if (!hWnd)
	{
		return FALSE;
	}
	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);
	return TRUE;
}

BOOL InitWindowsClass(HINSTANCE hInstance)
{
	WNDCLASS WndClass;
	WndClass.cbWndExtra = 0;
	WndClass.cbClsExtra = 0;
	WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));
	WndClass.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(WHITE_BRUSH));
	WndClass.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
	WndClass.hInstance = hInstance;
	WndClass.lpfnWndProc = WndProc;
	WndClass.lpszClassName = L"Bitmap";
	WndClass.lpszMenuName = L"Menu";
	WndClass.style = 0;
	return RegisterClass(&WndClass);
}

结果如图所示:
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:10:32  更:2022-04-22 19:13:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:43:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码