自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (6)
  • 收藏
  • 关注

原创 C++实践之Qt学习(十一):键盘鼠标事件

文章目录键盘事件鼠标事件键盘事件重写KeyPressEvent事件函数:virtual void keyPressEvent(QKeyEvent *event);void GameWnd::keyPressEvent(QKeyEvent *event){ qDebug() << event->key(); switch(event->key()) { case Qt::Key_Up: break; case Qt::

2021-07-26 17:03:54 1516

原创 C++实践之Qt学习(十):绘图

文章目录重绘事件绘制基本图形绘制资源图像示例:滚动背景绘制重绘事件根据博客园这篇文章的介绍:在Qt中,paintEvent方法是进行重绘的,只要出现以下几种情况,系统就会自动调用paintEvent方法。a)当窗口部件第一次显示时,系统会自动产生一个绘图事件b)重新调整窗口部件大小c)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏的区域产生一个重绘事件也可以通过调用QWidget::update()和QWidget::repaint()来产生一个绘图事件,其中repaint会强制

2021-07-26 17:01:18 1828 2

原创 C++实践之Qt学习(九):定时器

文章目录QTimer类实现定时器第一步第二步第三步第四步QObject中的定时器第一步第二步第三步定时器的使用场景很多,例如2D绘图类的游戏开发中,可以用来进行界面的重绘刷新、人物动作帧切换等,还可以实现项目中时间的实时更新。Qt中的定时器有两种实现方式:1)QTimer类 2)QObject中的定时器由于QTimer类使用时不能支持多个定时器同时使用,因此一般使用第二种方式QTimer类实现定时器第一步定时器对象在超时后会发出timeout()信号,需要建立定时器类对象以及超时信号和对应槽函数

2021-07-26 16:50:04 1375 2

原创 C++实践之Qt学习(八):多窗口间数据共享

文章目录方式一:信号和槽机制实现数据传递方式二:通过本地文件方式一:信号和槽机制实现数据传递利用信号和槽机制实现模态对话框和主窗口之间的数据传递。第一步,在对话框中定义一个信号函数:signals: void sendData(Contact);信号函数不需要有实现,主要是发射这个信号,并且该信号要在主窗口中关联到槽函数中。第二步,对话框中在指定的地方发射这个信号,并将要发送的数据作为参数:void AddContactDlg::on_buttonBox_accepted(){

2021-07-26 16:41:13 1574

原创 C++实践之Qt学习(七):标准对话框

文章目录消息对话框简单消息提示确认消息提示打开文件对话框颜色选择对话框字体选择对话框标准输入对话框输入字符串输入整数输入浮点数下拉列表选择Qt为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,对于这些常用的对话框我们不需要自己设计,直接使用就可以。消息对话框消息对话框QMessageBox 用于显示提示、警告、错误等信息,或进行确认选择,由几个静态函数实现这些功能。其中 information()、warning()、criti

2021-07-26 16:30:57 819

原创 C++实践之Qt学习(六):Qt设计器之常用控件、布局和样式

文章目录常用控件按钮普通按钮单选按钮多选按钮其他的按钮显示控件标签其他显示控件输入控件数据项控件容器控件布局Qt布局介绍设置布局的方式样式外部样式表常用控件按钮Buttons分类中包含了Qt中常用的按钮控件,其中常用的有:普通按钮Push Button:即常用的普通按钮,通常用来进行点击后执行某个命令。设置按钮图片:还可以设置按钮的三态图:ui->play_button->setStyleSheet( "QPushButton{border-image:url(:/n

2021-07-21 11:12:59 2687 5

原创 C++实践之Qt学习(五):Qt设计器介绍、信号和槽机制

文章目录Qt设计器对象树信号和槽信号和槽机制设计器上添加信号与槽方式1:方式2Qt设计器分为几个区域:控件/部件区、界面编辑区、动作编辑/信号槽编辑区、对象区、对象属性区部件区又分为几类:Layouts:布局Spacers:空间间隔Buttons:按钮Item Views(Model-Based)/Item Widgets(Item-Based):数据项展示组件,转载一篇博客中的描述:老猿学Python:在界面程序开发中,数据的展示主要包括表格、简单列表、树状列表以及纯文本等多种

2021-07-21 10:44:26 1156 1

原创 C++实践之Qt学习(四):Qt中的字符串

文章目录Qt设计器Qt中的字符串字符编码的坑字符串处理QString常用操作添加字符串操作删除子串修改检索分隔对象树信号和槽信号和槽机制设计器上添加信号与槽方式1:方式2Qt设计器分为几个区域:控件/部件区、界面编辑区、动作编辑/信号槽编辑区、对象区、对象属性区部件区又分为几类:Layouts:布局Spacers:空间间隔Buttons:按钮Item Views(Model-Based)/Item Widgets(Item-Based):数据项展示组件,转载一篇博客中的描述:老猿学Pyt

2021-07-21 10:42:29 2811

原创 C++实践之Qt学习(三):使用QtCreator创建Qt项目

文章目录创建项目Qt桌面应用向导第一步,确定项目名称和项目路径第二步,选择项目构建系统第三步,确定初始类的细节第四步,翻译文件第五步,选择工具集第六步,汇总项目界面项目文件说明关于类中的ui帮助构建路径使用资源第一步,创建一个资源文件第二步,添加资源发布程序创建项目打开Qt Creator,默认进入欢迎页,其中默认选择了示例,这里包含了大量的示例创建项目需要选择Projects标签:点击Projects后的New按钮,创建一个新项目:这里项目类型选择Application,表示创建一个Qt应

2021-07-20 15:00:30 10796 5

原创 C++实践之Qt学习(扩展):Visual Studio中Qt开发环境的搭建

本篇文章主要是写给特别想用VS进行Qt开发的同学,内容包含超多超详细过程截图,谨慎查看。另外由于之前安装和测试,中间穿插了VS2017和VS2019的部分截图,界面上会有一点差距,区别不大。如果想直接使用QtCreator进行Qt开发,本篇文章可以直接跳过。文章目录安装Visual Studio(若已安装,可跳过)下载安装安装Qt插件方式一:直接在VS扩展中搜索安装方式二:从Qt下载站下载插件安装包配置插件环境VS创建Qt项目创建项目Qt GUI Application向导进入向导选择模块设置父类.

2021-07-20 10:19:08 32737 13

原创 Swing带背景的窗体

文章目录实现思路资源准备使用JLabel实现关于背景拉伸使用JPanel子类实现(推荐)实现思路Swing中给窗体设置背景大概有如下两种思路:1、绝对布局或其他少数可以进行组件覆盖叠加的布局下,使用JLabel作为窗体的最底层,给其设置背景图;2、定义一个JPanel的子类,重写其paintComponent方法,其中进行背景图的绘制。资源准备创建Java项目,其中创建一个“Source Folder”,并创建一个包“images”用来存放图片资源:使用JLabel实现通过插件Windo

2021-07-20 09:35:47 794 2

原创 C++实践之Qt学习(二):下载和安装

下载地址下载地址:http://download.qt.io选择Archive进入后再选择Qt进入版本选择页面:由于5.15版本不再提供离线安装包,因此这里我们选择较新的5.14版本,进入后选择新一点的子版本即可:按照平台直接选择对应程序下载即可,如果下载较慢,也可以点击右侧的Details进入详情页,其中可以挑选一个距离较近的镜像下载地址进行下载。下载完成后,即可进行安装。安装双击离线安装包进行安装。运行时可能需要稍等一会后点击Next进入下一步。早期版本中此处可以跳过直接

2021-07-20 09:01:03 3249 1

原创 C++实践之Qt学习(一):前言

目录什么是Qt本教程的目标Qt版本的选择开发环境的选择什么是QtQt是一个跨平台的C++图形用户界面应用程序框架,于1991年由Qt Company公司开发,第一个商业版本于 1995 年由挪威 TrollTech 公司推出。根据官方维基(wiki.qt.io)上的描述:Qt是一个跨平台的桌面、嵌入式和移动应用开发框架。支持的平台包括Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish

2021-07-20 08:36:19 1449

原创 科大讯飞语音工具类基于Java SDK的封装使用

目的基于学习和小项目开发场景的需求,本文章对讯飞开放平台(https://www.xfyun.cn)中关于语音能力(语音合成、语音识别)进行了一定程度的封装,通过引入封装工具包可以便捷的使用在线合成和在线识别能力。原理讯飞开放平台提供了基于WebAPI的开发方式,同时也提供了多个平台的SDK开发,而我需要的仅仅是Java环境下的使用(准确的说是基于Java Swing进行桌面应用开发),所以考虑到SDK中已经集成了本地录音和播放的实现,因此基于JavaSDK进行封...

2021-07-13 17:24:53 1228 1

原创 Win10下VS2017的一个非常奇怪的编码问题

操作系统:Win10IDE:Visual Studio 2017过程:1)新建项目 -- Visual C++ -- Windows桌面--控制台应用2)新建一个源文件test.cpp,在资源管理器中使用记事本打开,并选择另存为,观察其编码为UTF-8但是如果在VS中查看(使用高级保存选项),其编码格式为GB23123)输入一点内容(包含预编译头文件,以及一句简单注释):#include "pch.h"/*test*/之后再次在记事本中另存为查看编码为UTF-8

2020-07-19 12:45:05 805

原创 C语言实现扫雷游戏(控制台可视化界面)

先放上完成效果图:开始页面游戏过程:说明:整个游戏过程为键盘控制,上下左右进行格子选择,1进行标记或取消标记,2进行怀疑或取消怀疑,回车会打开当前格子(标记的格子不可打开,如果是已经打开的格子,再回车时会根据当前数量周边是否全部标记来决定是否继续翻开周边格子,类似与Win上的双击),自动翻开的判定上,只会连续翻开空白区域。源代码下载地址:https://down...

2019-05-16 15:50:32 3676

转载 [手工搬运][程序系统托盘与运行实例唯一实现]

前言:这是在网上找到的一篇博客,内容链接已经失效,但还好能看到百度快照的内容,所以有了这篇搬运原文地址http://blog.csdn.net/franzhong/article/details/6322886作者 franzhong程序都要实现系统托盘功能,最小化到托盘是不是很酷,像QQ等等软件还有的程序只允许运行一个,再次运行时会提示已经运行,是不是很友好

2014-11-03 13:01:13 674

原创 C++里将float数据转换到wchar_t数组中

过程太曲折了,,不得不记录以下;写程序的时候,用到了wchar_t数组来处理数据,其中需要将一条数据

2014-07-08 23:24:12 3878

转载 printf的实现原理

本文转载自http://blog.sina.com.cn/s/blog_56e8acf40100kaer.html printf的声明int _cdecl printf(const char* format, …);_cdecl是C和C++程序的缺省调用方式_CDEDL调用约定:1.参数从右到左依次入栈2.调用者负责清理堆栈3.参数的数量类型不会导致编译阶段的错

2013-12-31 10:55:38 2094

原创 C版弹钢琴程序进化版——Key下落效果

在http://blog.csdn.net/jiratao/article/details/9916203文中,使用C语言编写出了能弹钢琴的程序,但是想要弹的时候,还得打开曲谱文件,对照着去弹,如果一个不小心,看花了眼,那就~~所以一直在想,怎么实现像手机游戏那样的下落块对应按键,最终,终于让我实现了。先上个成品图,当然还是有些粗糙 哈哈,效果还不错吧,我还在程序加入了一个

2013-12-12 17:22:43 2189 2

原创 SetWindowLong去除不了边框?解决!

使用MFC创建对话框程序是我经常做的事。为了窗口的美化,有时候需要绘制背景等,这个时候边框就很碍事了。因此想要去除标题栏和边框。最简单的办法,就是在资源视图中,将对话框的Border设置为None。后来想用代码来做这些事情,这样也能自己掌控。代码如下:SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE)

2013-10-16 11:11:04 8591

原创 用C语言编写钢琴小程序

网上搜索键盘钢琴,可以搜索到不少小游戏,最常玩的就是Flash小游戏,26个按键的后来想用C语言自己实现一个,没有界面~~控制台的。。原理很简单,先在控制台中获取按键事件,在按键事件中,开一个线程,这个线程就是专门用来播放键对应的音效mp3的。为什么要用线程呢,因为直接按键播放的话,如果不把mp3播放完,就无法再播放同一mp3,用线程就没有这个问题了。线程函数中,就是使用mciSe

2013-08-12 09:32:58 12086 2

原创 C/C++解析文件路径,获取盘符、路径、文件名及扩展名

其实也不算原创了,都是抄的msdn的内容。。。。经常要处理跟文件相关的东西,免不了要做一些解析路径以及文件名扩展名的工作。以前傻傻的自己去strstr斜杠,然后慢慢匹配解析,后来才发现有API做好了相应的工作了。。。函数原型:void _splitpath( const char *path, char *drive, char *dir, char *fname, char *e

2013-08-05 11:30:15 18587

转载 深度解析:清理烂代码

文章转载而来!原文链接: Niklas Frykholm    翻译: 伯乐在线 - 唐小娟译文链接: http://blog.jobbole.com/28672/[ 转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]猜猜看怎么了!你正”继承“(接收)了一堆混乱的旧代码。恭喜你!现在都是你的了。混乱的代码可能来自任何地方。中间件,网络,可能来自你自己的公司。

2013-07-02 12:11:31 1172

原创 MFC CListCtrl中的第0列文字不能居中

备忘录:今天看到群里有人讨论ListCtrl中report视图下,第0列的列头文字不能设置居中。想想我以前的做法都是在创建好了各列后,将第0列的宽度设置为0,“隐藏”起来,当然,这是假隐藏,因为还是可以通过拖动列头将其拉回来的。甚至还想到了重绘控件,最后还是没有实现。。后来群友提供了一种办法,就是在创建列的时候,从第1列开始插入,m_list.InsertColumn(

2012-12-27 10:21:22 4316

原创 scanf的另一种用法

scanf除了平时使用的类似于scanf("%d", &a);等用法,还有一些不常见的用法,但却很有用。例如可以输入带空格的字符串:char buf[80] = {0}; scanf("%[^\n]", buf); 原理是使用了[...]和[^...]这个转换符,这是一种很少见的用法,但却很有用 。例如#include main() {

2012-08-15 09:09:27 686

转载 C++调用C

转载自:http://blog.163.com/sean_1010/blog/static/11080322200952633111975/ 以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);

2012-08-06 16:29:36 914

转载 7zip SDK中C++模块的编译

原文博主标题本是:7z系列之一:7zip SDK中C++模块的编译不过好像就写了这一个·· 原文如下:---------------------------------------------------------分割线------------------------------------------------------------------- 7z系列之

2012-06-16 09:14:53 3784

原创 基于MFC对话框的Windows服务程序

最近需求要写个服务程序,部分功能用MFC类库实现将非常方便,因此就没打算使用win32的服务程序,虽然那样对于服务很简单。首先写好mfc的对话框程序,调试什么的,功能也都完成好。这一部分和平常的mfc对话框程序没有差别,之后的服务启动后打开的就是现在所完成的。重点是服务部分。这里我找了很多文章,后来在http://www.vckbase.com/document/viewdoc/?id

2012-04-26 11:22:21 6787

转载 野指针--程序崩溃的炸弹

原文作者 http://hi.csdn.net/redhat7890              我在EXE应用程序中使用DLL,该DLL包含对话框资源,该对话框是我从别的工程中复制进来的,运行EXE应用程序时对话框窗口正常打开,一切功能皆正常,但是在窗口关闭时出现异常,Debug调试时出现异常中断,查看堆栈发现是DoModal()调用过程中,DestoryWindows()里产生的

2012-04-26 10:48:19 3784

转载 高质量c++(指针参数是如何传递内存的?)

文章来自 http://blog.csdn.net/zgbsoap/article/details/567939指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(ch

2012-01-05 14:11:59 633

转载 CTime与DWORD之间的转换

<br />转自 http://blog.csdn.net/ddl007/archive/2009/07/01/4313770.aspx<br /> <br />CTime t(2009,7,1,16,58,50); //时间类型赋值<br />DWORD dwTime = t.GetTime(); //将CTime状换为DWORD类型<br />CTime time(dwTime);//将DWORD转换为CTime<br />time.GetDay();<br />time.GetYear();<br /

2010-12-01 17:10:00 1278

转载 关于文件系统中的重命名操作

做文件系统过滤驱动的时候,对文件读写进行控制,遇到了doc文档写的问题,doc写的时候并不是直接写到文件中,而是先建立一个隐藏的tmp文件,写入此文件,然后将源文件删除,再重命名此tmp文件,比较乱,在驱动中通过创建修改访问属性的方法行不通。在驱网搜到一篇帖子,http://forum.driverdevelop.com/read.php?tid-113072.html,其中一大段的英文文章讲到了相关知识,E文水平有限,文章一长就顾不过来了。。。。记下来,有空翻译一下,网络机器翻译严重看不懂,自己来吧。。。

2010-11-11 18:25:00 3468

转载 DWORD转换为格式时出错 time_t注意!

<br />本文转载自http://bluezealot.spaces.live.com/blog/cns!A07F3383AB036B6A!392.entry<br />原文如下:注意VC9中的time_t<br />最近碰到了一个问题,原先用VS2003编译的非托管C程序,移植到VS2008上编译出来的程序不能用了,执行到localtime_s这个语句的时候出错了。<br />原先的程序是这样的:<br />struct tm gtime;<br />DOWRD dwordTime = xxxxxx;/

2010-10-29 18:20:00 5658

原创 自动刷新IE

<br /> 现在大多浏览器都有了自动刷新功能了,IE8没用过不知道有没有,系统里还是IE7,没有自动刷新,之前做网卡驱动要做测试,刷新网页看能不能捕获到发出去的包,所以就像写一个自动刷新IE的Demo。<br />大致思路是这样:<br />先找到IE的窗口句柄,然后给这个句柄定时发送F5这个按键消息,这样IE就能定时刷新了。<br />首先,如何找IE窗口,因为IE窗口的标题是随访问的网页变化的,不过其最后的- Microsoft Internet Explorer是一直都有的,(注,这是XP下,WIN

2010-10-28 11:16:00 6237

原创 获取进程的句柄数

<br />本来准备用<br />http://blog.csdn.net/juyingmin/archive/2010/07/30/5775397.aspx<br />中的方法,来获取句柄数,查msdn时发现,vs2008中可以直接使用GetProcessHandleCount 这个API来获取给定PID的句柄数,再一看原文章。。第一句就说了是VC6.0中的用法。。。汗,没看到~~<br />下面是代码,枚举当前所有进程的句柄数<br /> DWORD dwHandles; HANDLE hCurPr

2010-10-28 10:39:00 6327

原创 不直接使用大于小于 比较两数大小

<br />之前驱动中对ULONG的IP地址直接比较大小来做范围判断,后来发现会蓝屏,不知道是什么原因。。。<br />只好修改,在网上搜了一下,找到一种办法,就是按位比较,对有符号数的比较很多,无符号数应该也是一样,就是多了一位的判断<br />参考老胡的BLOG中的内容http://blog.csdn.net/zhejiang9/archive/2008/09/27/2985961.aspx中<br /> <br />((a[30]^b[30])&&(a[30]-b[30]+1}) || ((a[29]

2010-10-26 13:56:00 1452

原创 获取磁盘信息

BOOL WINAPI GetVolumeInformation( __in LPCTSTR lpRootPathName, __out LPTSTR lpVolumeNameBuffer, __in DWORD nVolumeNameSize, __out LPDWORD lpVolumeSerialNumber, __out LPDWORD lpMaximumComponentLength,

2010-08-20 15:25:00 531

ifly_yuyin.jar

对科大讯飞开放平台中的在线语音能力的封装使用,基于Java SDK进行封装

2021-07-13

C语言实现控制台扫雷小游戏

C语言实现的控制台小游戏,使用了Windows控制台相关的API进行了界面的美化,可以使用上下左右按键进行位置控制并进行相关操作:标记雷区、保留疑问、翻开格子,并实现了类似WIN上扫雷游戏的双击功能,即在已经打开的格子上再次进行打开操作时,会根据周边标记数量来决定是否自动继续翻开周边安全区。

2019-05-16

C控制台趣味打字程序(打字练习、钢琴程序)

这是一个C语言写的Windows控制台小程序,程序中有两个模块,分别为打字练习和钢琴小程序,都是控制台下字母下落后对应敲击。打字练习可以选择下落速度以及开关敲击音效(其实就是按键的对应钢琴音效),钢琴程序中已附带了几首歌曲资源,也可以自己输入曲谱文件,曲谱来源于互联网,搜索键盘钢琴(只有26键字母的那种)。

2014-02-11

C语言实现的猜数字游戏

相信很多人都玩过文曲星,上面的猜数字游戏到现在任然记忆犹新,正好有空,就用C语言实现了一下,具体看代码

2013-01-21

FAT32文件系统的简单处理

FAT32系统下,读FAT表,并根据内容做一些简单操作,例如搜索簇链,判断文件的属性(文件/文件夹,是否已删除),只是一些简单的操作

2010-08-30

BMP位图数据结构 PDF格式

这是我在论坛里搜到的一片不错的文章,综合讲述了BMP位图的数据结构,好像是多篇文章综合在一起的,缺失了不少图~~,原文是DOC形式,我把他转换为PDF了,看起来舒服一点

2009-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除