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

其实刚开始用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就行了。

时间: 2024-10-20 13:02:25

微端游戏启动器LAUNCHER的制作MFC版之三(界面)的相关文章

微端游戏启动器launcher的制作(序篇)

公司要做一个游戏接入腾讯QQ游戏大厅,腾讯要求制作一个launcher,公司之前并没有接入过腾讯,所以大家其实都不懂,而我又是新人,所以刚拿到这个任务的时候整个人就是一个大写的懵逼.在网上查找了不少的资料,但是关于launcher的实在太少了,所以经历了半个多月终于写完launcher的我决定写这个系列的博客,希望能给大家一个参考.我是用C#写的,因为能查到的文档实在太少,所以流程基本都是自己实现的,如果有错希望大家指出. 首先launcher是什么: 我的理解就是一个游戏启动器,微端游戏为了避

微端游戏启动器LAUNCHER的制作之MFC版一(序和进程通信)

额...刚开始信誓旦旦说要写launcher制作的博客,还没写完就被抛到脑后了真是没毅力.最近把之前写的wpf的launcher改成了mfc版,遇到很多问题,写了三个星期才写完,好好记录一下吧.我也想把wpf版的写完,毕竟过了快一年了......我就决定在mfc版中穿插两种方式的对比把我想要写的比较让我头疼的地方写出来吧. 首先说一下改成C++版主要是因为wpf需要的框架支持很多,有的电脑上没有的话就启动不了.mfc也需要很多的库支持,为了避免这个问题我们只能用静态库的方式了,大是大了点但是经过

微端游戏启动器launcher的制作之下载篇(系列一)

首先第一篇先讲一讲launcher最核心的功能---下载功能. 这个部分估计得好几篇才能写完,东西比较多也比较杂,慢慢来吧,我的东西也在继续改进中...... 从web上下载文件需要用到几个类,HttpWebRequest(http请求).HttpWebResponse(http应答),Stream(文件流),大致流程就是先创建一个请求,然后等待web服务器应答,这时候它会去找这个网址存在不存在,如果不存在就会报错,所以最好是放在try/catch块中防止程序崩掉.然后你就可以创建一个web请求

Egret之微端Android

一 : 注册微端项目 需要在Egret Launcher中注册一个游戏 , 本文只做基础测试,所以使用的是Egret官方提供的测试地址:http://tool.egret-labs.org/Weiduan/game/index.html 二:设置导出(创建Android工程目录) 三:将生成好的Android项目导入到Android Studio中 四:清理和编辑项目 五:生成APK文件 六:结果 ①,安装的程序注,如果需要更改icon , 则②,运行结果(Very Good) 七:关于接SDK

微端 代码工程 as air 分享

分享 ^_^ 1. 用到 air , as , 2. 微端下载及更新技术 成功上线的棋牌游戏,可以用于传统游戏开发! 地址: http://download.csdn.net/detail/stonechang/7560085 微端 代码工程 as air 分享,布布扣,bubuko.com

2D客户端+微端技术总结

本人于2013年9月23号加入一个页游项目组, 并作为项目组的客户端小组的主程, 带领一个4个人(峰值)的前端小组, 进行微端的开发.微端项目于2014年8月底大体完成, 历时11个月.9月份之后微端项目组一直在做细节上的调整和优化, 处于半打加油状态.根据公司战略调整, 微端项目组于2015年4月中旬开始移植微端到另外一个页游项目组, 经过一个月时间的奋战(此时微端小组原先成员只剩下我和另外一个同事, 后来临时找了一个刚毕业的小伙, 一共3个人), 移植工作基本完成. 我个人也与5月底提交离职

egret微端, 非原生打包相关

http://developer.egret.com/cn/github/egret-docs/Native/native/microclient/index.html 可参见该链接,在安卓studio里面打开 通过上述egret打包的微端,如果想运行自己的游戏,则需要将自己的egret项目进行发布,将发布之后的 文件粘贴到 egret微端 的game文件夹下: 原文地址:https://www.cnblogs.com/RitaLee/p/10374607.html

Team--时代团队PC端游戏冲刺计划完成与项目远景规划

number1:本周冲刺的目标 完成与android版功能基本相似的功能 游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的--所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩          家必须控制节奏,拿捏点击的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡. number2:项目远景目标 功能的增加: ①不同鸟的选择,根据玩家水平和玩家的目前的状态,对不同的鸟解锁 ② 背景的选择(根据用户的

【Unity 3D】学习笔记二十九:游戏实例——简单小地图制作

任何的学习,光看不练是学不好的.所以这次就总结回顾下怎么制作MMROPG类游戏中的小地图.在MMROPG类游戏里,主角在游戏世界里走动时,一般在屏幕右上角都会有一个区域来显示当前游戏场景的小地图.主角在游戏世界里走动,小地图里代表着主角的小标记也会随之移动.那怎么实现咧? 首先需要确定两个贴图,第一个是右上角的小地图背景贴图,应该是从Y轴俯视向下截取主角所在的位置大地图.第二个就是主角的位置大贴图.在本例中,因为没有学习unity地图制作,所以地图用一个面对象代替,主角用立方体代替,使用GUI来