摘要: ①、最常用的方式:全局变量或者多个线程都能看到的一个东东1、全局变量方式;int g_Num = 100;UINT __cdecl ThreadWriteProc(LPVOID lpParameter){ while(TRUE) { ++g_Num; Sleep(50); } return 100;}UINT __cdecl ThreadReadProc(LPVOID lpParameter)... 阅读全文
posted @ 2016-03-20 23:03 hungryvampire 阅读(862) 评论(0) 推荐(0)
摘要: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 23:02 hungryvampire 阅读(313) 评论(0) 推荐(0)
摘要: bbs.176ku.com免费看 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:55 hungryvampire 阅读(222) 评论(0) 推荐(0)
摘要: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:52 hungryvampire 阅读(308) 评论(0) 推荐(0)
摘要: 随便建立一个MFC小程序,值谈一个对话框:双击打开该InnoSetup:然后文件新建:没有的就跳过。还缺,就再添加;打包的时候一定呀把动态链接库一起打包来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:50 hungryvampire 阅读(373) 评论(0) 推荐(0)
摘要: 现在框架窗口上定义私有的数据成员:然后跳转到cpp文件:上面是把按钮放在了框架窗口内而坐标 工具栏是在框架窗口的哦内部客户区中。该按钮时放在了外面的框架窗口中。由以下可知:现在重新做一个放在视图中:增加私有变量:。给视图类增加OnCreate消息:以上其实是由两个窗口构成外面的是框架窗口,里面的是视图窗口。两个按钮分别在不同的窗口。来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:48 hungryvampire 阅读(319) 评论(0) 推荐(0)
摘要: 新建常规空项目:手动添加 写头文件:CMyApp继承CWinApp有继承InitInstance函数,现在不用手写可以通过添加消息用向导来完成: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:43 hungryvampire 阅读(244) 评论(0) 推荐(0)
摘要: 如下不选择文档视图结构支持怎没有了CMyDoc类还可以删除视图类和Hello类mainFrm类只剩下如下:然后再自己添加hello头文件和源文件:重写InitInstance消息以上是只有CMyApp和CMainWnd,最简单的MFC给其添加消息处理:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:35 hungryvampire 阅读(177) 评论(0) 推荐(0)
摘要: 新建MFC项目 单文档 文档视图:如上,向导会为我们自动生成4个类。每个类中有很多代码,不需压迫我们全部搞懂,我们只把重要的几个搞懂即可。以前是在窗口中画显示要在视图中画:所有的显示都是在视图类中:在视图类属性中添加 paint消息:记住要在视图对象上添加消息而不是像以前那样在窗口对象上添加。在视图类上再添加 鼠标单击消息:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:28 hungryvampire 阅读(333) 评论(0) 推荐(0)
摘要: 新建常规空项目,添加头文件:一定要设置项目属性:源码如下:Create函数:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:24 hungryvampire 阅读(174) 评论(0) 推荐(0)
摘要: 建立win32项目:win32是C语言的使用sdk.windows操作系统是用C语言做的。新建MFC 多文档 单文档 是真正的MFC程序。基于对话框的是最简单的MFC应用程序。下面新建一MFC 单文档 带有视图结构的程序:C++习惯把类的定义放在头文件中,在源文件中添加新文件:修改代码如左侧。源文件进行调用如下:也可以全部写在一个源文件中:如下,但是这样不好 不符合我们C++使用习... 阅读全文
posted @ 2016-03-20 22:19 hungryvampire 阅读(623) 评论(0) 推荐(0)
摘要: 增加按钮修改名称和ID:双击播放按钮,编写代码,没播放时 显示为播放,播放状态下显示为停止:在头文件中增加bool变量 是否播放:开始时 无播放,在初始化对话框中 :双击 写 播放按钮内的函数:在头文件中声明函数:实现播放停止函数:双击+号按钮:现在要对listbox操作我们给其添加变量:添加了控件变量,然后在编程时 使用该控件变量就比较简单了。实现删除-号按钮:播放函数如下:(未完善)增加一数... 阅读全文
posted @ 2016-03-20 22:17 hungryvampire 阅读(275) 评论(0) 推荐(0)
摘要: MFC 对话框项目,添加按钮 修改名称和ID :双击open按钮:添加头文件和库文件:把音频文件复制到 项目文件夹内:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:14 hungryvampire 阅读(395) 评论(0) 推荐(0)
摘要: 新建MFC项目:基于对话框:双击背景音乐:添加头文件和动态链接库:把要播放的文件放到资源文件夹:然后添加资源:把刚才复制过来的资源导入:把不用的删除:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:13 hungryvampire 阅读(591) 评论(0) 推荐(0)
摘要: 建立全局钩子必须为DLL应用程序:如下建立:DLL程序 必有有一个程序装载他。所以还需要在做一个项目。再新建一win32项目:这个做成windows应用程序。回到DLL 先做一个DLL:DLL有一个DLLMain函数,该函数有三个参数,switch内现在只用到一个,就先写一个:然后增加键盘的钩子函数:以下setKbHook为挂钩的设置函数实现钩子函数和其他进程挂钩。也叫安装钩子。:其要做成... 阅读全文
posted @ 2016-03-20 22:09 hungryvampire 阅读(3981) 评论(1) 推荐(0)
摘要: 如果安装了钩子后面在此输入aaaa则aaaa就变成了bbbb:如果删除了钩子 则bbbbb就又变回aaaaa.这种钩子 叫做 getMessage: 钩子函数必须是全局函数或静态函数:有了钩子函数 在其内写代码 如下:有了 钩子函数 要把钩子进行安装,双击安装按钮:双击安装按钮后增加如下代码:第一个是钩子消息种类,第二个是该钩子函数,三个是空,四个是获取线程ID的 API函数。该S... 阅读全文
posted @ 2016-03-20 22:05 hungryvampire 阅读(872) 评论(0) 推荐(0)
摘要: 新建MFC基于对话框:双击 抓取按钮:包含头文件,因为用到的两个类在这个头文件中:先打开百度查看源文件:如下:抓取到了,但是是乱码:修改项目属性 使用多字节字符集:修改代码 在每一行的后面加上斜杠n:不同网页的字符集不一样 要进行转换。下面查看网页的字符集:当为乱码时要进行转换:网上搜索资料:复制该函数到项目中:如下修改代码进行转换:有以下可知 在此抓取时 便不为 乱码了。记住 一定要... 阅读全文
posted @ 2016-03-20 22:02 hungryvampire 阅读(302) 评论(0) 推荐(0)
摘要: 增加变量:使用变量:复制客户端和服务端到demo文件夹:打开命令行:服务端输入hello 客户端也收到hello输入two客户端接收到 ,又给服务端发送回去了。 如下尝试更换IP:客户端ctrl+c结束。以上均是 客户端和服务端在同一台电脑中。下面 在虚拟机实现:拷贝文件到虚拟机中,保留msvcr100d.dll虚拟机中运行:在外面计算机连接 虚拟机计算机:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 22:01 hungryvampire 阅读(630) 评论(0) 推荐(0)
摘要: 1.文本框,静态文本,按钮 2.获取文本框信息: 1.不绑定变量,直接用成员函数或者API GetDlgItemText ::GetWindowText 2.绑定变量,使用UpdateData,给变量赋值 UpdateData(TRUE)-控件中的值赋给变量 UpdateData(FALSE)-变量 阅读全文
posted @ 2016-03-20 21:58 hungryvampire 阅读(613) 评论(0) 推荐(0)
摘要: 新建常规空项目:定义SOCKET变量:增加地址接收端变量和端口:在增加定义变量:增加计算大小:使用计算的大小:修改之前上面的错误,正确形式如下:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 21:57 hungryvampire 阅读(621) 评论(0) 推荐(0)
摘要: 技术细节:绑定前增加服务端地址:增加一个指定端口:增加客户端的地址:和地址的长度“:客户端的套接字代表一个新的链接:增加字节数组:////////////////////////////////////////////////////////////////////下面做客户端//////////////////////////增加服务器端套接字的地址:增加定义端口:增加命令行参数:增加命... 阅读全文
posted @ 2016-03-20 21:44 hungryvampire 阅读(3270) 评论(0) 推荐(0)
摘要: 先看界面:双击新增按钮:///////////////////////////////////////////////////////////下面做修改:选中后 选中项要到 编辑框中:修改列表框属性:选中后 控件中的项到 编辑框:要实现修改:双击修改按钮:至此代码虽然算完成,但是存在严重SQL注入将姓名的单引号替换为双引号即可:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 21:17 hungryvampire 阅读(329) 评论(0) 推荐(0)
摘要: 在对话框头文件中 导入ADO的动态链接库:定义变量:在初始化对话框中:创建字符集对象:利用字符集对象 读数据库数据:以上先给listBox添加变量:选中所有行。com类型转C++类型:没出来,有错误,检查代码:增加messageBox进行测试:修改列表框 属性 view 为Report:检查以下代码:初始化列表框控件:无错误。再检查一下代码:读数据库数据到列表控件:///////////... 阅读全文
posted @ 2016-03-20 21:08 hungryvampire 阅读(434) 评论(0) 推荐(0)
摘要: 把从数据库读出来的数据在列表框中显示出来:导入ADO动态链接库:双击读入数据库按钮:初始化:把uld文件拖到记事本:双击读取按钮后:关闭字符集 关机连接 释放。多个GetCollect()可读取多列出错了:检查修改:效果如下:双击 清除列表按钮:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 21:00 hungryvampire 阅读(367) 评论(0) 推荐(0)
摘要: 在头文件中定义GDI+中的Image 对象声明: 把位图文件复制到需要使用如下Graphics:修改代码:修改以上代码 图片格式 有 错误 是gif格式。指定保存格式:‘保存按钮的处理:下面实现GetImageCLSID函数:先声明该函数:函数定义如下:修改代码 必须为jpeg:恢复源代码:这样就把bmp格式图像 保存为了 jpeg格式来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 20:58 hungryvampire 阅读(935) 评论(0) 推荐(0)
摘要: 、按钮处理程序:使用GDI+要包含的头文件:初始化GDI+要使用两个变量,这两个变量在名称控件中:阴影为名称空间 可不写初始化”出错了 拷贝头文件到 。h文件中“销毁窗口:在按钮内写GDI+的代码“来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 20:57 hungryvampire 阅读(311) 评论(0) 推荐(0)
摘要: 把位图文件 复制到res文件夹。修改ID:声明画刷和位图:在初始化对话框中 初始化 画刷:增加 消息 :WM_CTLCOLOR:当需要改变对话框 背景色 外观 字体时才需要此消息:处理对话框背景色:如果处理其他 可转到定义出 查看其他消息:创建颜色画刷:创建阴影画刷:转到定义出 指定阴影样式:效果如下:给 下拉框控件添加变量:增加 选择发生改变消息:初始化时 还可以选中其中的... 阅读全文
posted @ 2016-03-20 20:40 hungryvampire 阅读(409) 评论(0) 推荐(0)
摘要: 定义变量:在初始化对话框中进行初始化:给菜单添加事件处理:在 因为打开第二张 图像的时候会失败,是因为没有释放对象,所以增加释放对象的功能:定义保存旧位图的指针:初始化该指针:打开新位图选入DC时把旧位图保存起来:窗口还要销毁 增加窗口销毁 消息:也要释放对象:///////////////////////////////////////////////////////////////////... 阅读全文
posted @ 2016-03-20 20:37 hungryvampire 阅读(721) 评论(0) 推荐(0)
摘要: 增加一按钮 双击:SPY++查看 进程下面的线程:另一个线程函数:定义一个指针变量:在构造函数中初始化:暂停线程:线程继续:定义布尔变量 记录 线程有没有在运行:初始化该变量:修改县城函数demoA:对话框添加按钮,双击该按钮:增加一个线程函数:实现线程函数:增加第2个按钮 掉用第二个线程函数:‘按了第一个按钮立马按第二个按钮时 也就是当两个线程并发执行时就会出错:以上是线程同步的四种方法... 阅读全文
posted @ 2016-03-20 20:34 hungryvampire 阅读(1487) 评论(0) 推荐(0)
摘要: 1,这个项目在是删除project下的debug目录及其文件夹,还有ipch文件,sdf文件,是用mfc开发的。2,值得一提的是用到了vector 注册表还有 拖拽api ,用vector来保存ipch debug sdf文件,然后将其删除,注册表主要用到了,注册注册表 删除注册表 ,查询键值,主要是为了操作project路径拖拽也是为了project获取路径。3.特色就是只需写入project... 阅读全文
posted @ 2016-03-20 20:30 hungryvampire 阅读(2186) 评论(0) 推荐(0)
摘要: ODBC最古老,但到今天还在使用。偶尔使用。DAO 和RDO 为旧接口。OLE DB新,复杂 微软 出了ADO。VC++ + ADO是主流:MySQL 和Oracle都有专用接口。ADO底层是OLE DB实现。ADO是COM组件。ADO 专用文件夹:要用msADO15.dll打开stdafx.h头文件:在其内导入该库:在初始化实例时 初始化ADO:下面都是COM编程要求做的:wi... 阅读全文
posted @ 2016-03-20 20:07 hungryvampire 阅读(292) 评论(0) 推荐(0)
摘要: /////////////////////////////////////////////////////////////////////////法4:、定义函数指针和 常量宏“自己写 要用到的一个结构:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 19:56 hungryvampire 阅读(272) 评论(0) 推荐(0)
摘要: ODBC最古老,但到今天还在使用。偶尔使用。DAO 和RDO 为旧接口。OLE DB新,复杂 微软 出了ADO。VC++ + ADO是主流:MySQL 和Oracle都有专用接口。ADO底层是OLE DB实现。ADO是COM组件。ADO 专用文件夹:要用msADO15.dll打开stdafx.h头文件:在其内导入该库:在初始化实例时 初始化ADO:下面都是COM编程要求做的:wi... 阅读全文
posted @ 2016-03-20 19:54 hungryvampire 阅读(552) 评论(0) 推荐(0)
摘要: 四种方法;使用结构processEnty32前要设置该结构的大小:修改代码如下:////////////////////////////////////////////////////////////////////////////法二: 添加lib库文件:打开进程需要提升权限。提升权限的函数如下:把函数的声明放在 main函数之前:把函数定义放在 main函数之后。在main函数开始... 阅读全文
posted @ 2016-03-20 19:38 hungryvampire 阅读(525) 评论(0) 推荐(0)
摘要: 添加对话框 静态文本 Edit Control 按钮:内存映射技术需要两个变量:在头文件中声明:现要把编辑框的内容发送到内存映射中:用MFC的动态数据交换把编辑框的value属性和成员变量进行关联。然后就可以把编辑框内容发送到内存映射中:因为变量要和控件关联 所以勾选控件变量:在对话框demoB中:一样对对话框B添加关联:因为在demoA中创建了内存映射文件,所以在demo B中 ... 阅读全文
posted @ 2016-03-20 19:37 hungryvampire 阅读(808) 评论(0) 推荐(0)
摘要: 用内存映射文件 读文件 最最简单,加载运行exe或DLL时要用内存映射文件:多进程键使用内存映射文件进行数据交换。 文件操作 C语言 C++ winAPI三种方法:以上三种方法都不是最好的方法。最好的是用内存映射的方法:在文件夹内新建一个文本文件:新建一个对话框,增加文本控件,现要把txt文件读入该对话框控件内:打开类视图对话框类添加变量:编辑框自动和value属性相关联绑定在一起:如下可以... 阅读全文
posted @ 2016-03-20 19:25 hungryvampire 阅读(697) 评论(0) 推荐(0)
摘要: 在头文件中声明变量,来保存互斥对象,互斥对象是windows的一个内核对象。在初始化实例中创建互斥对象并进行检查:在创建窗口的时候:添加窗口属性标记:关闭窗口时把属性删除:当有一个实例在运行时,要找到该实例,把其置为前端:修改之前实例初始化代码的测试代码来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 19:24 hungryvampire 阅读(588) 评论(0) 推荐(0)
摘要: // EnumRegValue.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include //使用STL中的string对象需要的头文件//该函数用于将二进制数据转换成字符串,并返回一个string对象,它返回的是一个M... 阅读全文
posted @ 2016-03-20 19:22 hungryvampire 阅读(364) 评论(0) 推荐(0)
摘要: // RegCreateValue.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include int main(int argc, char* argv[]){ HKEY hSubKey;//以KEY_SET_VALUE权限打开HKEY_CU... 阅读全文
posted @ 2016-03-20 19:22 hungryvampire 阅读(450) 评论(0) 推荐(0)
摘要: /* *************************************《精通Windows API》 * 示例代码* osinfo.c* 10.1 系统信息**************************************//* Windows 2k */#define _WIN32_WINNT 0x0500/* 头文件 */#include #include #inclu... 阅读全文
posted @ 2016-03-20 19:19 hungryvampire 阅读(419) 评论(0) 推荐(0)
摘要: 使用双管道 给两个进程进行通信,不需要再开辟进程 效率高“反复使用一个进程进行通信两个管道 四个句柄 ,两个成员变量 两个局部变量”修改单管道1的代码“粘贴到构造函数中:粘贴到构造函数中后修改变量的名称:修改为如下:上面选中的代码是执行命令时要使用的 粘贴到如下”把字符串szCmd提到全局变量 因为下文还有使用:关闭局部变量:类的成员变量要在析构函数中关闭:‘先注释掉未写好的代码“... 阅读全文
posted @ 2016-03-20 19:16 hungryvampire 阅读(509) 评论(0) 推荐(0)
摘要: // EnumReg.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include int main(int argc, char* argv[]){ HKEY hMainKey = HKEY_CURRENT_USER; HKEY hSubKey; //打开HKE... 阅读全文
posted @ 2016-03-20 19:16 hungryvampire 阅读(1824) 评论(0) 推荐(1)
摘要: 管道用于两个进程间通信双击执行按钮牛“_T("cmd")为多字节字符集修改为多字节字符集”现在用上管道: 效果如下:按钮按下去会创建一个管道 创建一个新的进程来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 18:30 hungryvampire 阅读(248) 评论(0) 推荐(0)
摘要: 按钮一处理执行 打开失败。因为对话框权限低 其没有权限对其他进程执行操作,所以 需要 提权。在对话框函数内增加提权函数:权限:windows非常重要的函数:把句柄提升为全局变量:按钮二关闭进程:3420是计算器进程ID因为PID会变化”下面讲解 如果根据程序窗口标题获取窗口句柄,根据窗口句柄获取进程ID“:获取窗口类”“:点击查找窗口”:拖动到窗口上“”:如上查找窗口时 FindWind... 阅读全文
posted @ 2016-03-20 18:28 hungryvampire 阅读(777) 评论(0) 推荐(0)
摘要: WinExecShellExecuteShellExecuteExCreateProcess在对话框内创建四个按钮:双击第一个按钮 :双击按钮2:传一个文档的名字 其会自动选择程序打开文档:双击按钮3:用一个SHELLEXECUTEINFO结构来进行打开,该结构是windows定义好的:以上是早期windows函数。双击按钮4:用两个结构,这两个结构是windows定义好的L:来自为知笔记... 阅读全文
posted @ 2016-03-20 18:27 hungryvampire 阅读(1343) 评论(0) 推荐(0)
摘要: 编程对其他软件进行控制,模拟鼠标键盘操作,管理软件,测试工具,游戏外挂,控制程序,都是通过模拟鼠标键盘完成》远程操作记事本计算器:要操作记事本 需要把记事本窗口置为最前,否则 操作就跑到其他窗口了。先查找到该窗口:再把窗口句柄变成窗口指针,通过指针把记事本变成最前面的当前窗口。再模拟键盘鼠标时,便会是该最前面当前窗口。65是a的AISCII码。也就是键盘虚拟键码大小写均为65。第2个是键盘... 阅读全文
posted @ 2016-03-20 18:16 hungryvampire 阅读(1266) 评论(0) 推荐(0)
摘要: 以上窗口为无边框窗体:在窗口属性中 去除窗口边框:首先定义两个变量:在构造函数中进行初始化:因为要按下鼠标左键才能进行拖动,所以增加鼠标左键消息:小技巧: 捕获鼠标 放置鼠标跑出当前窗口:增加移动鼠标消息:鼠标按下去的小时函数如下:增加鼠标离开弹起的消息:鼠标移动的消息函数实现如下:鼠标当前位置减去鼠标开始的位置为鼠标移动的距离,为减少窗口的闪烁,让距离大于两个像素的才让他移动,因为不... 阅读全文
posted @ 2016-03-20 17:54 hungryvampire 阅读(479) 评论(0) 推荐(0)
摘要: 增加按钮:选中对话框:在选中对话框 增加单击消息:再增加buttonUp消息:OnLButtonUp一样的代码:其他消息也是用这三行代码:把这三行代码封装成函数:函数声明:增加 鼠标左键双击函数的实现:增加右键双击消息:右键UP消息:消息响应实现如下:增加中键:增加鼠标滚轮消息:鼠标的消息有这些:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 17:49 hungryvampire 阅读(213) 评论(0) 推荐(0)
摘要: 增加并双击按钮:关进按钮 操作代码,复制上面代码修改即可:重启 按钮:复制之前代码修改:修改 名称 肯定要重启吗? 和 EWX_REBOOT以下这些参数均是:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 17:45 hungryvampire 阅读(222) 评论(0) 推荐(0)
摘要: 屏幕宽度 屏幕高度 标题栏 宽度告诉 光标大小 图标大小 等为度量增加listBox:就这一个函数:GetSystemMetrics()这个函数给他不同的参数,这些写参数都是一些常量:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 17:40 hungryvampire 阅读(235) 评论(0) 推荐(0)
摘要: 有Ex的是新的32位的增加按钮 双击按钮:修改一下 错误代码:写按钮 双击后的代码:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 17:39 hungryvampire 阅读(272) 评论(0) 推荐(0)
摘要: SetTimer()KillTimer()两种使用方法:消息通知方式和回调函数方式使用小图标复制到res文件夹内: 在资源内导入该位图资源增加Picture control控件:修改ID Type为Bitmap Image为其ID:声明变量保存定时器ID:在构造函数内 把定时器ID初始化为0:双击按钮的处理:上面的定时器发消息,现在增加定时器:实现定时器:以上是第一种方法。第二个按钮 用第二... 阅读全文
posted @ 2016-03-20 17:38 hungryvampire 阅读(452) 评论(0) 推荐(0)
摘要: 修改现有控件的功能->子类化技术只能输入字符 而不能输入别的类型----------------拦截消息两个函数SetwindowsLong()CallWindowsProc() 下面的 小控件都是 一个小窗口是窗口就有自己的窗口过程,可以给其一个新的额窗口过程把原来的窗口过程替换掉,用新窗口过程处理他的消息 ,即把原来的消息拦截下来,用新的窗口过程来处理修改ID后添加C++的类:在新类中声明... 阅读全文
posted @ 2016-03-20 17:37 hungryvampire 阅读(824) 评论(0) 推荐(0)
摘要: 按下按钮后要处理defined消息 去消息映射表增加消息映射增加该函数的声明填写函数的实现:修改一下:法2:定义该变量:(消息ID)增加按钮2 按下按钮后发送消息:增加消息映射表增加声明:增加函数的实现:】‘来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 17:36 hungryvampire 阅读(182) 评论(0) 推荐(0)
摘要: 手动添加自定义的消息映射:增加按钮后 不要双击,转到 消息映射表中:如果双击按钮 则为自动添加消息映射在头文件中声明消息映射函数:必须写afx_msg增加自定义的消息映射函数实现:再做一个:选中外层对话框,属性 消息 增加 清除背景色 消息:增加消息实现代码:在做一个,选中文本框 增加 文本改变消息:m_hWnd 为主对话框窗口的句柄:IDC_EDT_INPUT为文本框ID:来自为知笔记... 阅读全文
posted @ 2016-03-20 17:34 hungryvampire 阅读(220) 评论(0) 推荐(0)
摘要: 添加图片控件:效果如下:先添加文字说明:打开头文件 定义变量:在对话框初始化代码部分 添加如下代码:当鼠标左键按下去LButtonDown的时候 实现拖动:设置布尔变量记录,设置捕获 ,设置光标:当鼠标左键弹起:如果处于捕获状态: 释放捕获 布尔变量设置为假定义鼠标坐标把 鼠标坐标 由语原来窗体客户区转换为屏幕区由点获取窗口句柄类型转换在文本框中显示窗口句柄效果 如下:由窗口句柄获取窗口... 阅读全文
posted @ 2016-03-20 16:36 hungryvampire 阅读(305) 评论(0) 推荐(0)
摘要: 增加最大化最小化还原按钮 双击:最大最小如下:上面 button3是还原按钮处理。下面button4是关闭按钮处理关闭窗口的时候进行确认 yes no处理 如下:打开类试图 我的窗口 属性 消息 添加close消息:5 和6为改变窗口大小和位置的两种方法:单击 选择复选框 在属性中添加CLICK消息:button7为剧中:chkTopmost 为置顶层显示: 把图标复制到res... 阅读全文
posted @ 2016-03-20 16:33 hungryvampire 阅读(1122) 评论(0) 推荐(0)
摘要: 通过HWND获得CWnd指针获得应用程序主窗口的指针建立两个按钮:双击其中一个按钮:1 获取当前窗口句柄2获取窗口指针3打印输出这两个指针 当前窗口的地址 应该是相等的:双击按钮2:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:31 hungryvampire 阅读(149) 评论(0) 推荐(0)
摘要: 每个属性页都是一个对话框:修改ID 后给该控件添加变量:在初始化对话框中 添加 选项卡属性页控件中添加每个选项卡中都要放一个对话框:插入了几个选项也就 添加几个对话框,设置属性 style 为child 为子对话框Border 改为None然后便可以在对话框上添加处理:每一个对话框都是用一个类来进行处理:在主对话框中 添加子对话框的头文件 和定义 子对话框类的变量:当选项卡从一... 阅读全文
posted @ 2016-03-20 16:28 hungryvampire 阅读(494) 评论(0) 推荐(0)
摘要: 建立MFC对话框:修改Picture Control 控件控件属性的ID和Type为Bitmap然后添加BitMap资源:把已准备好的bmp图片资源复制到res文件夹:导入位图资源:设置 type 为Bitmap Image为位图ID:添加后如下图:添加一按钮。双击该按钮,在按钮处理程序中添加 位图处理程序:用位图句柄接收:给图片框添加变量:改为一个点.是当前级的文件夹。两个点事上一级的:点... 阅读全文
posted @ 2016-03-20 16:25 hungryvampire 阅读(1076) 评论(0) 推荐(0)
摘要: 富文本框 可以吱嘎一部分字体: 新建MFC基于对话框项目:富文本框:在初始化实例的时候初始化富文本框(记住是在另一个cpp中 不是初始化对话框):增加一个菜单:添加一个menu:修改ID:给主对话框增加菜单给菜单添加时间处理程序:然后给富文本对话框添加变量:把其改为AfxInitRichEdit2:再返回查看,该变量已有:填写如下代码:效果如下:、、、、、、、、、、、、、、、、、、、、、、、... 阅读全文
posted @ 2016-03-20 16:19 hungryvampire 阅读(813) 评论(0) 推荐(0)
摘要: 在头文件中添加声明:在cpp文件中初始化函数内添加代码:一个状态栏有多个面板:摆放状态栏的位置: 添加文本框 设置 多行 滚动条属性:接收回车键设置:并设置修改ID。给文本框添加控件变量:给文本框添加change消息处理:。在文本框内输入文字后 ,在状态栏自动给文字计数:CStatusBar常用成员函数:m_status.SetIndicators()m_status.SetPanel... 阅读全文
posted @ 2016-03-20 16:18 hungryvampire 阅读(667) 评论(0) 推荐(0)
摘要: 如下叫做打开文件对话框:CFileDialog类在对话框上添加文本框,接收回车键设置,多行,编辑修改ID,垂直滚动条 水平滚动条 属性设置。添加菜单资源:这个菜单是给主窗口使用的,所以在主窗口对话框属性添加菜单如下:给菜单添加消息处理:选择该对话框类第一个参数为true为打开文件对话框,为false时 为保存文件对话框以上代码仅仅显示打开对话框,若想打开文件还需要些很多很多C++ 文件IO操作的... 阅读全文
posted @ 2016-03-20 16:17 hungryvampire 阅读(292) 评论(0) 推荐(0)
摘要: d.DoModal()p->Create(IDD_DIALOG,this);p->ShowWindow(SW_SHOW);模态对话框为不把子对话框关掉,父对话框便不可用,如下图:不把字体对话框关掉,则记事本程序不可用。这样的对话框为模态对话框。而像下图的查找对话框,不用关闭子对话框也可以在父窗口进行操作,这种对话框为非模态对话框: 在对话框上 添加文本框控件设置 多行 水平滚动条... 阅读全文
posted @ 2016-03-20 16:16 hungryvampire 阅读(912) 评论(0) 推荐(0)
摘要: 添加工具栏资源后 绘制工具栏图片:在头文件中声明CToolBar变量:在初始化函数中进行 对工具栏的初始化:效果如下:修改创建的几个工具栏按钮的ID:添加处理按钮的消息映射表:在头文件中声明菜单的处理函数:实现按钮的消息处理函数:效果如下:添加第2个按钮的消息映射:声明第2个按钮的消息处理函数:实现第2个按钮的消息处理函数:、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、... 阅读全文
posted @ 2016-03-20 16:14 hungryvampire 阅读(966) 评论(0) 推荐(0)
摘要: 设置主菜单(不是快捷菜单):给主对话框设置菜单:效果如下:修改菜单的ID使之便于记忆:给菜单添加消息处理:添加处理代码:设置快捷菜单:打开对话框,属性添加消息 上文菜单 快捷菜单消息:修改各个菜单选项的按钮ID:添加事件处理程序:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:13 hungryvampire 阅读(634) 评论(0) 推荐(0)
摘要: 设置长日期格式:结束日期一样添加变量:其他两个一样添加变量。双击开始日期添加消息处理:日期时间发生了改变:添加日期改变消息处理函数:一样给结束日期添加日期改变消息处理:因为结束日期日期改变 处理程序和开始日期的一样,所以封装为函数 ,,进行调用可避免写两次:在封装好的函数内进行 日期减法计算 ,计算两个日期间隔多少天:+1后 包含当天修改时间控件的ID给时间添加 时间改变消息处理函数:一样... 阅读全文
posted @ 2016-03-20 16:12 hungryvampire 阅读(6117) 评论(0) 推荐(1)
摘要: 添加树控件后,设置树控件属性:树控件添加变量:双击 “添加按钮”:文本框中文字处理:效果如下:先选中一个在填写文本 点击添加 变回添加在该选中条目的下面:双击删除按钮 进行删除处理:双击 修改按钮 进行修改处理:树控件选择发生了改变:选择树控件,右键找消息处理 找 选择发生了改变:设置选中后 文本出现在文本框中:添加消息后 在该函数内添加 如下消息处理程序:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:11 hungryvampire 阅读(491) 评论(0) 推荐(0)
摘要: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:10 hungryvampire 阅读(247) 评论(0) 推荐(0)
摘要: ListControl添加变量:关联控件变量:初始化:设置样式 添加列标题:添加位图资源:添加位图变量:创建图像列表:并把图像列表 给 列表控件使用:双击添加行按钮:添加第2列时 不能再用insertItem,因为第一列已经有了,剩下的是修改列要用SetItem双击删除按钮,先计算有 列,删除是要从后删除:给下拉列表combo control 添加选项内容把dropDown 改成dro... 阅读全文
posted @ 2016-03-20 16:07 hungryvampire 阅读(550) 评论(1) 推荐(0)
摘要: Slider Control 滑块先给滑块添加变量:初始化 滑块:设置设置文本和滑块对齐:处理滑块消息:选中滑块 添加消息:添加滑块消息处理程序:获取滑块的位置,把整型变为字符串 进行类型转换,显示在文本上:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:06 hungryvampire 阅读(650) 评论(0) 推荐(0)
摘要: 添加Progress Control为进度条,双击添加变量添加按钮start,双击添加按钮消息:每次滚动条进度增加10:初始化框中设置进度条范围:设置定时器:在对话框上添加 添加定时器消息:设置按按钮后 按钮灰色不可用:并把进度条处理程序添加到定时器中:当进度条到达最大值后,关闭定时器使进度条可以 按:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:04 hungryvampire 阅读(754) 评论(0) 推荐(0)
摘要: 新建MFC项目 基于对话框 数值调节按钮不能独立工作需要和文本框配合:编辑文本框ID:数值调节按钮的ID:这只自动伙伴:Tab键的顺序:默认向下增加向上减小:先看Tab键顺序:以上为设置伙伴 设置两项:设置对齐属性:效果如下: 双击写代码:先写初始化代码:写了以上初始化代码则 向上变为增加 向下变为减小小来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:01 hungryvampire 阅读(635) 评论(0) 推荐(0)
摘要: MFC项目基于对话框在初始化对话框的类中 初始化滚动条修改ID:编程初始化:选中对话框--》属性--》 消息--》滚动条消息--》编程处理滚动条消息:空白位置单击为翻页滚动条拖动:文本添加变量:最新的位置在文本中显示:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 16:00 hungryvampire 阅读(397) 评论(0) 推荐(0)
摘要: 添加文本到下拉框: 删除的设置:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:59 hungryvampire 阅读(563) 评论(0) 推荐(0)
摘要: 使用单选按钮要注意:单选键按钮的顺序必须是连续的,如果不是连续的一定要调整一下设置分组为true初始化 默认值:打开源文件找到初始化对话框:开始ID按钮到最后一个按钮 选中最后一个:效果如下:添加事件处理函数后在该函数内 填写失效函数:失效后擦出背景:选中矩形画矩形:为绿色复选框添加变量代码:调用上一个事件处理函数。调用蓝色:圆形设置也一样:来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:58 hungryvampire 阅读(440) 评论(0) 推荐(0)
摘要: 新建MFC项目--基于对话框--默认完成 增加Unicode 和多字节字符支持 _itot(num3,ch3,10) 数字转字符串10进制:方法二:直接得到数字: 方法四: 函数内 更新控件变量数据直接计算:关联时选择了最大值最小值会在代码内自动增加DDV验证代码如下方法五:看如下图片 当选择关联类别为control时为选择控件和控件变量相关联:法6:法7: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:57 hungryvampire 阅读(281) 评论(0) 推荐(0)
摘要: www.uipower.com www.uieasy.cn www.xcgui.com www.cvkbase.com www.oschina.com www.sourceforge.net http://sourceforge.net http://www.oschina.net /http://www.codeproject.com /http://www.vckbase.com /来... 阅读全文
posted @ 2016-03-20 15:55 hungryvampire 阅读(264) 评论(0) 推荐(0)
摘要: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:54 hungryvampire 阅读(564) 评论(0) 推荐(0)
摘要: 右击view视图 属性 Onpaint消息备用对象:备用对象创建画笔和画刷 法3以上是用堆栈变量实现,下面用指针实现:CPen * pPen =new CPen(PS_SOLID,1,RGB(0,255,0));CPen * pOldPen = dc.SelectObject(pPen);//把pPen给dc并用指针保存旧笔,dc.Ellipse(0,0,100,100);dc.Selec... 阅读全文
posted @ 2016-03-20 15:53 hungryvampire 阅读(320) 评论(0) 推荐(0)
摘要: 首先建立单文档 视图:在视图类下,右键属性添加消息Onpaint。在该函数内,填写自己的代码法2:改变字体:另一种创建字体的方法: 阴影效果:设置偏移 颜色 模式在view视图里弄 右键属性 OnPaint消息Org原点. 倾斜字体两个参数lfEscapemengt lfOrientaion 改变字体角度:全部画在0,0了 再加空格来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:52 hungryvampire 阅读(1057) 评论(0) 推荐(0)
摘要: 法3: 添加画刷: 创建阴影画刷: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:50 hungryvampire 阅读(377) 评论(0) 推荐(0)
摘要: 添加单文档类在View类视图点右键添加OnLButtonDown消息,生成该函数,然后再函数内添加绘图代码;画圆弧:原理 是截取: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:50 hungryvampire 阅读(839) 评论(0) 推荐(0)
摘要: 改为true变为多行对于多字节字符集 统计中英文字符个数需要用for循环而unicode字符集不用for循环,直接统计即可,一般不知道字符集,所以都加上该for循环,所以无论什么字符集统计的都是对的来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:49 hungryvampire 阅读(538) 评论(0) 推荐(0)
摘要: 用LineTo需要写四行 正弦曲线:、 补上最后一个点用dc.Setpixel(100,100)来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:49 hungryvampire 阅读(1116) 评论(0) 推荐(0)
摘要: 在CMyApp类的类视图下点属性 找到消息 添加找到InitInstance加进去 添加OnPaint消息添加左键消息自动生成的头文件信息:在客户区大小内画椭圆文字以上两张图先画线后画圆CClientDC dc(NULL) 传NULL 为桌面 串this为当前窗口来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:48 hungryvampire 阅读(242) 评论(0) 推荐(0)
摘要: 使用向导 建立单文档 视图 文档结构,在视图类的属性内 添加 消息响应 其余消息映射 和映射函数会自动添加:注意在视图对象上 OnPaint,添加自己的代码:-1代表text内字符串长度不限即字符个数不限全部显示,单行 居中视图对象CDemoView的属性,再次添加鼠标左键按下:之后消息映射和消息处理函数会自动生成:添加自己的代码即可,如下this->MessageBox想添加那个消息... 阅读全文
posted @ 2016-03-20 15:42 hungryvampire 阅读(255) 评论(0) 推荐(0)
摘要: MFC使用C++语言把Windows SDK API函数包装成了几百个类两个重要的MFC类:CWinApp和CFrameWnd1.MFC项目 空项目 属性 静态库或共享MFC Unicode 字符集包含MFC头文件 afxwin.h.。 MyApp 继承CWinApp。重写InitInstance()函数。头文件如下:cpp文件只 创建对象即可:或者全部写在一个文件中: 或者 方法三: ... 阅读全文
posted @ 2016-03-20 15:41 hungryvampire 阅读(394) 评论(0) 推荐(0)
摘要: 效果如下:添加消息处理如下:添加自己的代码 在如下:来自为知笔记(Wiz)附件列表MFC1.jpgMFC2.jpgMFC3.jpg 阅读全文
posted @ 2016-03-20 15:41 hungryvampire 阅读(220) 评论(0) 推荐(0)
摘要: 虚函数另一个极其重要的行为模式,这种模式非常频繁的出现在application framework身上,当我们后续追踪MFC程序代码时,遇此情况会再次提醒你。 来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-20 15:40 hungryvampire 阅读(327) 评论(0) 推荐(0)
摘要: 最重要的类:CObject和CCmdTarget侯杰MFC C++复习:三个结论:1.如果你以一个“基类指针”指向“派生类的对象”,那么该指针只能够调用基类所定义的函数。2如果你以一个“派生类的指针”指向“基类的对象”,那么你必须先做明显的类型转换,这种做法很危险,不符合真实生活经验,在程序设计上也会给程序员带来困惑3.如果基类和派生类都定义了 相同名称的成员函数 那么通过对象指针调用成员函... 阅读全文
posted @ 2016-03-20 15:39 hungryvampire 阅读(776) 评论(0) 推荐(0)
摘要: MFC 控件添加热键 2014-12-24 14:28:47标签:C++ MFC 控件 热键使用 给MFC中的控件添加我们想要的控件热键,在动手之前,必须清楚,热键分为local的和global的, 其中local的职能在当前程序有焦点(被激活)时有效,而global的,则无论什么时候都有效,测试local的要优先于global的,就是如果当前激活窗口的快捷键与未激活窗口的快捷键重叠,当前... 阅读全文
posted @ 2016-03-20 15:38 hungryvampire 阅读(7562) 评论(0) 推荐(0)
摘要: 博客声明 此博客文章多为个人学习笔记,开博初衷是为了建立自己的知识库或者工具库以便于查阅关键知识点,之前学习笔记多在为知笔记上未曾公开,后面为了营销展现自己会逐步把之前积累在为知笔记的知识分享至博客园。所有笔记文章笔者会保障知识的正确性,转载的文章笔者会尊重原始作者注明出处。鉴于是个人的学习笔记,文 阅读全文
posted @ 2016-03-20 15:24 hungryvampire 阅读(195) 评论(0) 推荐(0)