- 博客(43)
- 资源 (7)
- 收藏
- 关注
原创 Protobuf生成C#代码文件
Protobuf如何生成C#代码文件生成C#代码文件运行bat文件,会遍历文件夹中的proto文件,并生成C#代码文件:生成的文件:
2022-07-13 16:43:02 2124 1
原创 易语言开发-托盘图标和菜单的实现
这篇文章的主要内容是介绍如何实现在windows系统下,显示应用的托盘图标,以及如何在应用程序托盘图标中添加菜单,和右键显示菜单的操作实现。
2020-06-10 00:46:51 5679
原创 Unity开发游戏--2D坦克大战(一)
这是使用unity2017开发游戏教程,这个系列教程,是教大家怎么开发一个2D坦克大战。该教程会比较长,所以会分成多个篇章来介绍。
2020-05-22 17:58:06 1606
原创 易语言实现视频播放功能
易语言实现视频播放功能新建工程导入视频播放支持库增加视频播放组件实现选择视频文件功能添加‘按钮’和‘通用对话框’组件打开视频文件运行程序新建工程打开易语言,新建windows窗口程序。导入视频播放支持库易语言默认是没有选择视频播放支持库的。所以,需要增加视频播放支持库的配置。打开‘工具’->‘支持库配置’界面选中‘windows媒体播放器’并确定。增加视频播放组件在主界面窗口中,增加视频播放组件。实现选择视频文件功能添加‘按钮’和‘通用对话框’组件修改‘通用对话框’的属
2020-05-21 01:00:18 11401 3
原创 解决pythoncom报错办法
解决No module named 'pythoncom'报错办法问题解决办法问题运行python代码时有报错:ModuleNotFoundError: No module named ‘pythoncom’这是因为缺少“pythoncom”该模块。解决办法解决办法:在命令行执行下列命令:pip install pywin32...
2020-05-20 15:54:46 2012
原创 Python实现文字转语音
Python实现文字转语音前言创建应用获取应用的API Key和Secret Key编写python代码替换API Key和Secret Key前言因为该功能的实现,需要使用百度的语音合成技术,所以,首先需要注册并登陆百度AI:https://ai.baidu.com/tech/speech创建应用点击创建应用,创建自己的应用。按照提示填入相应内容就好。获取应用的API Key和Secret Key编写python代码# coding=utf-8import sysimport
2020-05-19 20:30:50 5034 7
原创 易语言实例-闹钟
易语言实例-闹钟流程图代码流程新建工程生成界面设定时间播放声音判断时间是否已经到设定时间流程图代码流程新建工程新建windows窗口程序,并保存生成界面添加“时钟”组件,用于生成定时器事件。添加编辑框,标签和确定按钮。设定时间双击“确定”按钮,增加按钮点击事件:将用户设定的时间文本,转换成日期时间格式。设定时钟计时器周期为1000毫秒,并开始计时。设定时间 = 到时间 (编辑框_设定时间.内容)时钟1.时钟周期 = 1000播放声音到设定时间了,则播放闹钟声音提醒,主要
2020-05-18 19:19:51 3467
原创 易语言入门-HelloWorld
易语言入门第一课--HelloWorld一、创建工程二、编辑修改主窗口三、增加按钮点击事件四、运行一、创建工程程序-新建-选择windows窗口程序你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。二、编辑修改主窗口右侧工具箱,选择添加编辑框,标签,和按钮。三、增加按钮点击事件双击按钮,添加代码:_启动窗口.标题 = “我的第一个易语言程序”标签1.标题 = “我
2020-05-13 02:17:37 1638
原创 IP地址,子网掩码、默认网关,DNS服务器是什么意思?
IP地址,子网掩码、默认网关,DNS服务器是什么意思?IP地址,子网掩码、默认网关,DNS服务器是什么意思?(一)问题解析001. 问:IP地址,子网掩码,默认网关,DNS服务器,有什么区别呀?我知道没有IP地址就不能上网,我也知道没设DNS就不能上外网,可它们都有什么功能,有什么区别呢?还有真奇
2011-11-22 10:55:54 111240 14
转载 程序猿装B指南
最近似乎装B指南比较火,我们程序猿也来装B吧.一.准备工作“工欲善其事必先利其器。”1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好。一个用来查资料,一个用来写代码。总之要显得信息量很大,效率很高。 2.椅子不一定要舒服,但是
2011-08-25 15:54:54 1116
转载 C++ vector 排序
C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方法,下面的例子能很好的说明: 方法1:我们直接来看代码吧,比较简单,容易理解:#include "stdafx.h"#include #include
2011-06-21 20:41:00 1170
转载 VC++:打开、保存文件对话框和浏览文件夹对话框
一、打开文件夹:1、CFileDialog实现CFileDialog hFileDlg(true,NULL ,NULL,OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,TEXT("驱动文件 (*.sys)|*.sys|所有文件(*.*)|*.*|"),NULL);if(hFileDlg.DoModal() == IDOK){m_pa
2011-06-16 14:40:00 1237
转载 LINK 2005 错误
今天遇到了 LINK 2005 错误。搜了一下,还真有学问呢。遂转载于此。没来得及看完第一篇,就用第二篇的方法了。第一篇:链接器都干了些什么?(http://www.cppblog.com/jacky2019/archive/2007/03/29/20891.html)Posted on 2007-03-29 19:10 小熊 目前项目在不停的增长,我想还是在它规模仍旧很小的时
2011-06-07 17:51:00 977
转载 Invalidate和UpdateWindow的区别
<br />在编程的时候经常把UpdateData、Invalidate、InvalidateRect和UpdateWindow四个函数混淆,在这里将简单介绍它们的区别。<br />UpdateData():<br /> 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE),将控件的输入映射到
2011-01-10 15:45:00 1043
转载 部署手机文件要点
<br />部署的附加文件列表格式是:一行一个文件,每行格式为 文件名|本地磁盘目录|目标路径|注册表否Visual Studio 环境准备<br />本文使用的WindowsMobile开发环境是Visual Studio 2008版本,要求在安装VS2008的时候,一定要选择安装Visual C++ ,并且要选择上智能设备可编程技术选项。如下图:<br /><br />如果你已经安装过VS2008,那么只要从Windows的“添加/删除程序”找到VisualStudio2008进入维护模式即可重新添加或
2010-12-02 17:09:00 1654
原创 【COM范例】WM上获取短信内容,AcitiveX控件调用页面JS方法
<br /> 原文地址:http://www.cnblogs.com/hoodlum1980/archive/2009/12/30/1635702.html<br /> <br /> COM 是 WIN32 系统中最复杂和晦涩,最重要的技术。<br /> <br /> 【备注:以下是个人看法】COM 是比传统的 API 提供方式(*.h, *.lib, *.dll) 更”高“层次的服务标准, 从某种意义上说,COM也是一种”API“,但它的使用和实现都要比传统API复杂的多。COM 的宗旨
2010-11-24 10:19:00 1127 1
原创 String,String[],string三个用法和意思
<br />string[]是数组,<br />String好象没什么并别,在VS里提示也相同<br />以下为搜索内容:<br /><br />MSDN:string 类型表示零或更多 Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。<br /><br />string是String的别名。string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色) <br />c# string映射为.ne
2010-11-05 14:22:00 5411
转载 DLL编写教程
<br /><br />DLL编写教程<br />半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术。例如DLL,COM,Socket,多线程等等。这些技术的特点就是使用广泛,但是误解很多;网上教程很多,但是几乎没有什么优质良品。我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了。一来对自己是总结提高,二来可以方便光顾我博客的朋友。<br />好了,废话少说,言归正传。第一篇就是《DLL编写教程》,为什么起这么土的名字呢?为
2010-10-13 17:19:00 663
转载 判断当前WM系统是否是Smartphone
<br /> 从微软提供的WM开发例子程序中找到的,除了取到是否是Smartphone的信息外,SystemParametersInfo还有很多其他不错的用途<br /> Code<br /> BOOL IsSmartphone()<br /> {<br /> HRESULT hr;<br /> TCHAR szPlatform[MAX_PLATFORM] = { 0 };<br /> BOOL bResult = FALSE;<br /> CBR(SystemParametersInfo(
2010-10-13 10:27:00 901
转载 从窗口句柄得到菜单句柄(从HWND得到HMENU)
1. 如果HWND是主窗口,可以使用API: GetMenu(...) 得到属于主窗口的句柄,原型如下:HMENU GetMenu(HWND hWnd);在MFC中原型如下:CMenu* GetMenu( ) const;2. 如果HWND就是菜单的窗口,想直接转换成菜单句柄,则需要发消息了:消息ID: MN_GETHMENU 0x01E5头文
2010-09-25 17:37:00 20105 5
转载 孙鑫VC++视频学习笔记之5: VC菜单相关编程
<br /> 阅读本文前,我们假设您已经:<br /> 1,知道如何创建一个单文档的App Wizard<br /> 2,知道C++ 类、函数重载等简单知识<br /> 3,知道如何给View类或者Doc文档添加成员变量<br /> 4,会用MFC的IDE调试工具最好,那么本文的程序您可以copy去调试<br /> 5,知道如何为某个框架类添加虚函数或消息处理函数<br /><br /> 一、 消息的分类:<br /><br /> 消息的分类:标准消息,命令消息,通告消息。<br
2010-09-25 17:36:00 1523
原创 OWNER DRAW / CUSTUM DRAW
<br />是的,我们在复杂控件上花了些曲折.其实不应该按照 "简单/复杂" 来对控件分类,而是应该按微软定的 "OWNER DRAW / CUSTUM DRAW" 来分类. 这两种DRAW方式的具体解释可以在MSDN上找到. 对于OWNER DRAW,就是按照上文描述的方法, 对于CUSTOM DRAW, 比如我遇到的TrackBar, 处理方法是: <br />(1) 从resource.h里获得该控件的resource id, 记为nResID <br />(2) 控件窗体句柄 hItemWnd =
2010-09-02 14:56:00 1200
转载 从瀑布模型、极限编程到敏捷开发
从瀑布模型、极限编程到敏捷开发---软件开发管理者思维的变化Jack zhai 软件开发是一种对人类智慧的管理,对人大脑思维的“工厂化”管理。人是有感情的、有情绪的、变化的、相对独立的工作单元,这与冰冷的机器是不可比的,所以在中国的历史上,管理人是最难的工作;“学而优则仕”的观点就是让最聪明的人应该选出来做官,做官就是管理人的。软件开发不仅是代码编程,而是人员的有效组织,如何既发挥人的主观能动性,避免情绪变化对工作的影响,又可以让大家有效的交流,让多个大脑的思路统一,快速完成目标呢?多年来软件企业的管理者一
2010-08-26 12:29:00 748
转载 VC线程间通讯
<br /><br />1.使用全局变量<br /> 实现线程间通信的方法有很多,常用的主要是通过全局变量、自定义消息和事件对象等来实现的。其中又以对全局变量的使用最为简洁。该方法将全局变量作为线程监视的对象,并通过在主线程对此变量值的改变而实现对子线程的控制。<br /> 由于这里的全局变量需要在使用它的线程之外对其值进行改变,这就需要通过volatile关键字对此变量进行说明。使用全局变量进行线程通信的方法非常简单,通过下面给出的示例代码能够对其有一个基本的认识。<br />
2010-08-24 10:39:00 1293
原创 另开了一个线程,线程里面一个函数调用UpdateData(false),结果就出错,为什么?
MFC是在类层次上的线程安全而不是在对象层次上的线程安全. 如果把一个CWnd *P传递到另外一个线程,在这个线程中CWnd的有些成员 函数将不能使用,因为在MFC内部维护一个HWND和MFC对象间的映射,但这个映射 不能跨线程,所以在一个线程中把一个CWnd *P传递到另外一个线程,另外一个 线程只有CWnd *而没有相应的HWND的这个映射,所以出现ASSERT错误. 解决方案: 1、你可以向主线程发送自定义消息,然后在这个自定义消息中调用UpdateData,就可以解决问题。或者使用其他方
2010-08-05 18:02:00 5768 1
转载 Visual C++模态对话框消息处理机制的分析
<br />摘要:消息驱动机制是Windows操作系统的根本,模态对话框消息处理又是不同于一般消息处理的特殊形式。通过分析这种消息机制的原理,可用来处理类似的程序设计要求。<br /><br /> 在Windows操作系统中,面向用户的GUI基本上可分为对话框形式和文档/视图两种表现形式。对话框的显示方式又可分为模态对话框和非模态对话框,以适应不同的用户交互需求。由于对话框和文档/视图框架结构各有特色,能不能将文档/视图框架结构当作一对话框来使用,或在对话框中实现文档/视图框架结构内的特色功能呢,答案是肯
2010-08-05 00:09:00 917
转载 关于“模态对话框”和“非模态对话框”的区别
关于“模态对话框”和“非模态对话框”的区别 先说说两者的定义:模态对话框就是指那种“显示出来就不可以点选位于其下面的对话框”的对话框;反之的就是非模态对话框。两者的区别:一. 非模态对话框的模板必须具有Visible风格(Visible=True),否则对话框将不可见,而模态对话框则无需设置该项风格。在实际编程中更加保险的办法是调用CWnd::ShowWindow(SW_SHOW)来显示对话框,而不管对话框是否具有Visible风格。二. 非模态对话框对象是用new操作符来动态创建的,而不是以成员变量的形式
2010-08-04 23:15:00 1486
转载 MFC CListCtrl的用法.Style/插入、删除、选中数据及排序问题等
<br />MFC CListCtrl的用法.Style/插入、删除、选中数据及排序问题等2010-02-05 19:04<br />摘抄自:http://hi.baidu.com/fclshark/blog/item/650cbaa731b7619fd14358dc.html<br />功能强大的CListCtrl:做网络笔记,还需添加修改CListCtrl改变行的颜色,列的颜色,字体颜色等.<br />资源属性里面有个sort设置排序的,如果不小心选了Ascending,那么你insertItem的顺序
2010-07-29 11:25:00 10487 4
原创 CListCtrl 一些使用技巧(更新中....)
1、问:CListCtrl 用DeleteItem删除中间项后,后面的项没有往上推,怎么解决?答:可以在之后调用Arrange, CListCtrl::Arrange( UINT nCode ) 。示例:// Align all of the list view control items along the top// of the window (the list view control must be in icon or// small icon mode).m_myListCtrl.Arrang
2010-07-28 21:28:00 2331
转载 报表式CListCtrl的使用详解初稿
严格说来本文是别人成果的集合,加入了本人使用的一点心得,而且文章内容是本人在实际开发中试验过可以使用的。这只是初稿,还有很多内容没有加入,原因是没有经过验证,以后会陆续加入,形成一个CListCtrl的使用完全指南。创建图形列表并和CListCtrl关联: m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192)); m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) ); m_caller_l
2010-07-28 19:29:00 860
转载 模拟键盘按键 自动输入文字
<br /><br />模拟键盘按键 自动输入文字<br /> 键盘对于每个操作电脑的人员来说是最熟悉不过的了。键盘上的按键可分为两类 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键;按下后虽然看不到字符但会产生控制作用的按键,如回车键、光标键等,我们称之为控制键。<br /> 对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在DOS系统下的ASCII码,在Wind
2010-07-26 21:33:00 7348
原创 CListCtr控件的一些操作
<br /> 一、获取CListCtr控件当前所选择的元素POSITION pos = m_List.GetFirstSelectedItemPosition();if (pos == NULL){TRACE(_T("No items were selected!/n"));}else{while (pos){int nItem = m_List.GetNextSelectedItem(pos);TRACE(_T("Item %d was selected!/n"), nItem);}}<br /> <br
2010-07-20 21:02:00 897
转载 非模态对话框的创建与删除
<br /><br />非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别 先看一下MSDN的原文: When you implement a modeless dialog box, always override the OnCancel member function and call DestroyWindow from within it. Don’t call the base cl
2010-07-20 10:54:00 799
转载 怎么让你的对话框保持统一的风格
1.前言我们在做窗口程序时,难免有时候会软件添加一些背景颜色或者图片,来对其进行美化,如果只有一个窗口,可能这还比较好办.如果窗口很多,而且我们又想让它们的界面风格保持一致,那么我们应该怎么去做呢?或许有朋友会讲,对每个对话框窗口进行美化不就行了吗?如果要求它们的界面保持一致的话,使用相同的代码对各自的对话框进行美化,这不就能达到风格统一的效果吗?是的,的确,这样确实也能达到我们的要求,但不知道各位有没有想过,当我们的对话框足够多,就意味着我们需要将同一份代码复制足够多份到足够多的对话框程序中,如果
2010-07-19 11:22:00 2234
转载 专访Scott Ambler:项目中如何进行敏捷建模
<br /><br /> 许多程序员对建模持怀疑态度,但事实上不必如此。我们特意采访了IBM的Scott Ambler,请他谈谈如何在项目中使用敏捷建模,以及为什么你可能已经使用敏捷建模,只是没有意识到而已。<br /><br /> Builder AU:敏捷建模对于Web 2.0领域内的开发者有什么意义?<br /><br /> Scott Ambler:敏捷建模的目的是为建模和文档构建描述一组原则和实践,最好是用于敏捷项目中。但如果它们不是那么敏捷也没有问题
2010-07-08 13:53:00 1110
原创 VC工程中的.rc文件和.rc2文件的区别
<br />rc和rc2都是资源文件,包含了应用程序中用到的所有的资源。<br />两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改;<br />而rc2中的资源不能在VC的集成环境下直接进行编辑和修改, 而是由根据需要手工地进行编辑。<br /> <br />在下面的地址找到关于RC2文件的描述: <br />http://msdn.microsoft.com/zh-cn/library/y3sk7e6b(VS.80).aspx <br /><br /><br />RC2
2010-07-07 15:00:00 19454 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人