微端游戏启动器launcher的制作mfc版之三(界面)

shellxi shellxi     2022-08-22     558

关键词:

     其实刚开始用wpf写launcher的原因也就是因为用mfc写界面非常的麻烦,尤其是对于我这种后端转前端的程序员来说。在写这个launcher之前我连对话框单文档多文档有什么区别都不知道。而现在的界面不像是以前,现在的界面都是各种异形,要求做得非常漂亮的。当然你会说有直接的界面库可以用,但是在网上找了一圈之后发现很多的界面库都是从好几年前就没有再维护了,要么就是商业版的,简而言之要钱。我们老大看我直接硬写界面的时候也跟我说你用界面库啊,然后帮我找了一圈,我还默默的期待了一下能够有什么好的办法,后来跟我说他也没什么好办法还是硬写吧。。。。。。

     说实话现在用mfc来写界面的人估计真的很少了,mfc大牛们不算,一般的游戏开发估计不会用mfc来写吧,能够在网上找到的最近的资料都是已经四五年以前的了,然后我每天都在跟我们老大吐槽==、

     好了不说废话了进入正题。

    异形窗口异形按钮什么的很多博客都有写,我也是从网上找的源码修改的就不说了,说一些我遇到的问题的点吧。

    1.自定义控件类型的话是需要自己注册系统消息的,比如ON_WM_PAINT()什么的要在messagemap里注册,不然的话自己重写的OnPaint函数不会被执行。

    2.窗口拖动的话整个窗口是需要重绘的,包括里面所有的控件。我用的是OnWindowPosChanged这个函数来标志窗口移动了,因为mfc中并没有mouseup这个消息。如果窗口移动的话onpaint函数里面加入控件的重绘。但是像按钮之类的控件可以利用窗口切割的方式,也就是说把主窗口和控件分割开来,在OnInitDialog()中加入ModifyStyle(0, WS_CLIPCHILDREN);这样就避免了一直去重绘其中的控件。但是像CStatic这样的类是必须要重绘的无法分隔开。

    3.避免闪烁的方式就是双缓冲。这个对于我来说的话就是道理我都懂可是代码上还是不太理解,cdc、hdc什么的好想弄清楚。

wpf的界面就简单的多,直接载入图片就行了,button的不同状态就是不同的图片,mfc中我的做法是把不同状态的图片拼接在一起,然后根据不同状态显示不同的位置。wpf中需要注意的一点就是比如一个listbox,点击的时候会出现边框,或者按钮点击会出现闪烁,取消他的focus就行了。

 

游戏制作大致流程粗谈之三

这次的粗谈主要细谈游戏策划的七大步骤(来源文库)一:立项报告   1:了解公司现有的技术资源和技术能力。  2:分析目标消费群体,确定游戏风格  3:确定基本玩法玩点、故事背景。  立项报告讨论通过后方... 查看详情

gom引擎手机端怎么用

今天分享的教程:GOM引擎微端配置详细语音教程什么是微端?就是玩家不需要下载补丁文件,就可以进入游戏并显示游戏界面。玩家玩到那里,补丁文件就自动更新到那里。当然支持微端的引擎不是很多。比如LEGHEROHGE,这些引... 查看详情

如何制作启动器

】如何制作启动器【英文标题】:Howtomakealauncher【发布时间】:2011-06-1800:30:06【问题描述】:我已经开发了很长一段时间,现在我正在尝试制作一个可以取代原来家的应用程序(例如HTCsense)。当用户点击手机上的主页按钮时,... 查看详情

Process.Start 没有启动游戏应用程序?

...多程序以使其更具可玩性。所以我决定制作一个程序,将launcher.exe替换为在游戏启动时 查看详情

如何启动 c++ mfc 应用程序

...c#难吗?我该如何开始?在c#中,我刚开始制作一些益智游戏,我是否也遵循同样的方法?学习MFCc++的最佳方法是什么?我在哪里可以找到资源?【问题讨论】:【参考方案1】:MFC并没 查看详情

(转载)dll动态链接库编程入门之三:mfc规则dll(上)

上一节中讲解了非MFCDLL,本节将介绍如何创建MFC规则DLL及使用MFC规则DLL的方法。   一、MFC规则DLL概述  MFC规则DLL的概念体现在两方面:  (1)它是MFC的  “是MFC的”意味着可以在这种DLL的内部使用MFC;  (2)它... 查看详情

微端热更新(代码片段)

热更新一般需要包含以下东西:1.URL1:游戏版本配置文件地址2.URL2:所有资源的MD5配置文件地址 问题如果将热更新分为强更和弱更(静默更新),以上的更新策略将会不支持静默更新。新策略在下载资源到缓冲区后添加一步是... 查看详情

网络运维与网络安全介绍之三

...?就得借助于启动U盘了,由于我在另外一个平台发布了制作启动U盘的详细过程,请大家直接查看网络运维与网络安全介绍之三。 查看详情

egret微端,非原生打包相关

...l可参见该链接,在安卓studio里面打开通过上述egret打包的微端,如果想运行自己的游戏,则需要将自己的egret项目进行发布,将发布之后的文件粘贴到egret微端的game文件夹下:  查看详情

h5游戏微端打包工具安卓机和苹果机都能进行打包吗?

H5打包一般都会有安卓端和苹果端的,只是安卓端打包出来就可以直接使用,苹果端打包出来一般使用企业信任签!参考技术A可以的,大天使H5不就是嘛 查看详情

android笔记-android启动之launcher启动

Android启动的第三阶段是Launcher的启动,也就是最终会看到的Android桌面的启动。在之前第二阶段Android启动之AndroidFramework启动中,Zygote,ServiceManager,ActivityManagerService和PackageManagerService等系统服务已经启动起来,接下来的L... 查看详情

docker之三----java业务镜像制作

一、制作tomcat镜像:基本架构图:1、制作JDK镜像基于官方提供的centos7.2.1511基础镜像构建JDK和tomcat镜像,先构建JDK镜像,然后再基于JDK镜像构建tomcat镜像。JDK下载路径:https://www.oracle.com/technetwork/java/javase/downloads/index.html选择架... 查看详情

pojavlauncher怎么设置java参数

参考技术A点击设置-参数设置进行设置。PojavLauncher启动器最新版本是一款功能十分强大的手机版Java启动器应用,使用这款软件可以启动我的世界的所有版本,支持服务器自定义ip,能够修改游戏画质好,能够自定义游戏参数。解压后... 查看详情

pojavlauncher怎么设置java参数

参考技术A点击设置-参数设置进行设置。PojavLauncher启动器最新版本是一款功能十分强大的手机版Java启动器应用,使用这款软件可以启动我的世界的所有版本,支持服务器自定义ip,能够修改游戏画质好,能够自定义游戏参数。解压后... 查看详情

禁用蒸汽覆盖

...间】:2019-02-2020:08:13【问题描述】:我有以下游戏设置:launcher.exe-在Windows上的Steam下启动,并为用户提供一些设置UI。然后launcher.exe启动实际的game.exe。问题是launcher.exe正在使用硬件加速UI-使用Direct2D/DirectX。此页面https://partner.st... 查看详情

android—launcher启动流程

Launcher应用程序在启动过程中会通过PackageManagerService服务请求查询系统所有的已安装应用的包名,图标和应用名称等信息,然后填充到Launcher中的Adapter中,这样点击某一项应用图标的时候就可以根据该图标的包名和启... 查看详情

Launcher 如何决定在启动器中放置哪个应用程序图标?

】Launcher如何决定在启动器中放置哪个应用程序图标?【英文标题】:HowLauncherdecideswhichappicontoplaceinlauncher?【发布时间】:2013-07-1913:28:09【问题描述】:我有一个非常幼稚的问题。我编写了一个程序,列出了我的Android操作系统中... 查看详情

launcher3学习记录-launcher第一次启动时的快捷方式widget加载流程

 Launcher3的主Activity是Launcher.java,在onCreate()方法中可以找到数据下载的入口。mModel是类LauncherModel的引用。1if(!mModel.startLoader(mWorkspace.getRestorePage())){2//Ifwearenotbindingsynchronously,showafadeinanimationw 查看详情