字体颜色对照表:https://www.sioe.cn/yingyong/yanse-rgb-16/

//Windows窗口头文件
#include <windows.h>//PlaySound函数包含的头文件
#pragma comment(lib,"winmm.lib") //窗口宽度
#define WINDOW_WIDTH 1132   //窗口高度
#define WINDOW_HEIGHT 708           //窗口标题
#define WINDOW_TITLE L"【游戏开发】自定义贴图"//全局环境设备和全局内存设备
HDC g_hdc=NULL,g_mdc=NULL; //位图
HBITMAP g_hBackGround; //窗口过程函数
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );//初始化
BOOL Game_Init(HWND hwnd);      //绘图
VOID Game_Paint( HWND hwnd);        //释放资源
BOOL Game_CleanUp(HWND hwnd );//主函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)
{//定义窗口类WNDCLASSEX wndClass = { 0 };//结构体的字节数大小wndClass.cbSize = sizeof( WNDCLASSEX ) ;   //窗口的样式wndClass.style = CS_HREDRAW | CS_VREDRAW;   //指向窗口过程函数的指针wndClass.lpfnWndProc = WndProc;       //窗口类的附加内存,取0wndClass.cbClsExtra     = 0;       //窗口的附加内存,依然取0wndClass.cbWndExtra        = 0;       //窗口过程的程序的实例句柄wndClass.hInstance = hInstance;                      //ico图标wndClass.hIcon=(HICON)::LoadImage(NULL,L"天龙八部图标.ico",IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);//光标句柄wndClass.hCursor = LoadCursor( NULL, IDC_ARROW ); //画刷句柄wndClass.hbrBackground=(HBRUSH)CreateSolidBrush(RGB(255,255,255));  //指定菜单资源的名字wndClass.lpszMenuName = NULL;                 //指定窗口类的名字wndClass.lpszClassName = L"TWJDWQ";//注册窗口类if( !RegisterClassEx( &wndClass ) )          return -1;      //创建窗口HWND hwnd = CreateWindow( L"TWJDWQ",WINDOW_TITLE,  WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH,WINDOW_HEIGHT, NULL, NULL, hInstance, NULL );//窗口显示的位置MoveWindow(hwnd,250,80,WINDOW_WIDTH,WINDOW_HEIGHT,true);//显示窗口ShowWindow( hwnd, nShowCmd );//更新窗口UpdateWindow(hwnd);  //初始化if (!Game_Init (hwnd)) {//消息窗口MessageBox(hwnd, L"资源初始化失败", L"消息窗口", 0);return FALSE;}//循环播放背景音乐PlaySound(L"我行即我道.wav", NULL, SND_FILENAME | SND_ASYNC|SND_LOOP); //定义并初始化msgMSG msg = { 0 };            //消息循环while( msg.message != WM_QUIT )          {//查看并派发消息if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ){//将虚拟键消息转换为字符消息TranslateMessage( &msg );        //捕捉消息给窗口DispatchMessage( &msg );}}//注销窗口类UnregisterClass(L"TWJDWQ", wndClass.hInstance); return 0;
}//处理窗口消息
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{//记录绘制信息PAINTSTRUCT paintStruct;           switch( message )                       {//绘制case WM_PAINT:     //指定窗口开始绘制(将和绘图有关的信息填充到paintStruct结构体中)g_hdc = BeginPaint( hwnd, &paintStruct ); //调用绘制函数Game_Paint( hwnd);//结束绘制EndPaint( hwnd, &paintStruct );         //更新窗口ValidateRect(hwnd, NULL);     break;                                  //按键case WM_KEYDOWN:    //按键为ESC,销毁窗口,并发送一条WM_DESTROY消息if (wParam == VK_ESCAPE)    DestroyWindow(hwnd); break;                                  //销毁case WM_DESTROY://清理资源Game_CleanUp(hwnd);   //请求终止,并发送一条WM_DESTROY消息PostQuitMessage( 0 );            break;                                  //缺省default:                                        return DefWindowProc( hwnd, message, wParam, lParam );      }return 0;
}//初始化
BOOL Game_Init( HWND hwnd )
{//环境设备g_hdc = GetDC(hwnd); //加载1张位图g_hBackGround = (HBITMAP)LoadImage(NULL,L"天龙八部壁纸.bmp",IMAGE_BITMAP,WINDOW_WIDTH,WINDOW_HEIGHT,LR_LOADFROMFILE);   //内存设备g_mdc = CreateCompatibleDC(g_hdc);  //绘制Game_Paint(hwnd);//释放环境设备ReleaseDC(hwnd,g_hdc);return TRUE;
}//绘制
VOID Game_Paint( HWND hwnd )
{//选择图片SelectObject(g_mdc,g_hBackGround);//贴背景图BitBlt(g_hdc,0,0,WINDOW_WIDTH,WINDOW_HEIGHT,g_mdc,0,0,SRCCOPY);  //创建字体HFONT hFont=CreateFont(30,0,0,0,0,0,0,0,GB2312_CHARSET,0,0,0,0,L"微软雅黑"); //在环境设备中选择字体SelectObject(g_hdc,hFont); //设置文字背景为透明SetBkMode(g_hdc, TRANSPARENT);  //定义三段文字wchar_t text1[]=L"新天龙八部:";wchar_t text2[]=L"高山流水觅知音,画地为牢心无悔。 ";wchar_t text3[]=L"--------逍遥派";//设置文字颜色并输出第一段文字SetTextColor(g_hdc,RGB(135,206,250));TextOut(g_hdc,30,100,text1,wcslen(text1));//设置文字颜色并输出第二段文字SetTextColor(g_hdc,RGB(135,206,250));TextOut(g_hdc,30,150,text2,wcslen(text2));//设置文字颜色并输出第三段文字SetTextColor(g_hdc,RGB(135,206,250));TextOut(g_hdc,300,200,text3,wcslen(text3));//释放字体对象DeleteObject(hFont);
}//清理资源
BOOL Game_CleanUp( HWND hwnd )
{//释放位图DeleteObject(g_hBackGround);//释放内存设备DeleteDC(g_mdc);return TRUE;
}

【游戏开发】游戏窗口输入文字相关推荐

  1. Java实现语音阅读功能开发(输入文字,转语音播放)

    第一步 导入maven坐标 <!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音 --><dependency& ...

  2. 【游戏开发】集合图片、文字、图形、音乐的游戏窗口

    //Windows窗口头文件 #include <windows.h>//PlaySound函数包含的头文件 #pragma comment(lib,"winmm.lib&quo ...

  3. 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

    本系列文章由zhmxy555编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7405479 作者:毛星云    邮箱: happyl ...

  4. java演练 谁在哪里做什么 文字小游戏开发

    java演练 谁在哪里做什么 文字小游戏开发 视频 java演练 谁在哪里做什么 - 西瓜视频 https://www.ixigua.com/6870326962703827469/ 代码 impor ...

  5. 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

    上一节我们讲解了键盘消息处理相关的知识.键盘加鼠标作为目前人机交互方式依旧的主流,在讲完键盘消息处理之后接着讲鼠标消息处理,自然是理所当然的. 这一节主要介绍各种鼠标消息的处理方式以及一些相关函数的运 ...

  6. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  7. Unity游戏开发:文字冒险游戏项目实战

    全面设计与实现问答游戏项目 文字冒险游戏又称互动小说,游戏的交互是通过玩家输入的文字来展开剧情.虽然文字冒险游戏的操作非常简单,但是如果开发者有充分的脑动和强大的设计能力,就能开发出系统复杂,超长游戏 ...

  8. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨) ...

  9. TI-BASIC 计算器游戏开发之文字、图形、音频教程 II:图形处理

    2019独角兽企业重金招聘Python工程师标准>>> TI-BASIC 计算器游戏开发之文字.图形.音频教程 II:图形处理 [第二部分] TI-BASIC 图形处理教程 还没到结 ...

最新文章

  1. git切换到指定tag
  2. 介绍Windows Server服务器角色、角色服务和功能
  3. 表的插入、更新、删除、合并操作_14_ 通过表关联更新多个表多个字段
  4. C# winform C/S WebBrowser 微信第三方登录
  5. 分布式文件系统研究-fastDSF文件上传和下载流程
  6. [react] 请描述下事件在react中的处理方式是什么?
  7. 【notebook】常用在线notebook总结
  8. Docker详解(十四)——Docker网络类型详解
  9. 智慧城管监控指挥中心建设
  10. qtp如何软件测试,QTP测试流程
  11. 关于各类图形CAD底层内核
  12. 手机html在哪个文件里,手机相册在哪个文件夹,教您手机图片存放在哪里
  13. mysql5.1不支持中文,MySQL_MySQL5.1的中文支持的一个改进, MySQL 5.1的中文支持的一个改 - phpStudy...
  14. 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  15. OpenSSL安全特征问题漏洞(CVE-2022-2068)版本1.0.2k-fips升级到3.0.5
  16. 1、模拟蚂蚁借呗—利息计算
  17. 如何快速搭建在家里(外网)也能访问的云办公云桌面系统
  18. 数字电子技术基础——第三章 集成逻辑门电路
  19. Nginx 设置域名转发到指定端口
  20. 调用marathon rest API

热门文章

  1. 大数据学习之路111-大数据项目(中国移动运营数据分析一)
  2. 简洁大气的PHP抽奖网站系统源码 带留言板功能
  3. MyBatis 的一级缓存和二级缓存
  4. 激活函数总结RELU,Leaky RELU
  5. 抖音android x86,抖音数据采集教程,详解Hook框架frida,让你在逆向工作中效率成倍提升!...
  6. 【代码调优】Java开发中总结的代码质量优化技巧,springboot企业级开发教程
  7. IEEE Transactions模板中参考文献作者缩写、期刊名缩写
  8. 人工智能与大数据就业前景_电子信息(人工智能与大数据方向)专业介绍
  9. 【优秀课设】基于OpenCV-Python的摄像头人脸检测追踪控制系统
  10. MultipartFile的使用: