![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【win32 MFC】
Ailoverer
这个作者很懒,什么都没留下…
展开
-
MFC实现下载网络图片缓存到本地
#include 新建一个基于对话框的工程,然后给确定按钮添加如下处理事件!【引入头文件afxinet.h】void CTestDlg::OnOK() {const int dwBufSize = 1024;CInternetSession * Session = new CInternetSession; CHttpFile*转载 2016-01-26 16:59:16 · 1819 阅读 · 0 评论 -
MS Active Accessibility 接口技术编程尝试
Microsoft© Active Accessibility 2.0 is a COM-based technology that improves theway accessibility aids work with applications running on Microsoft Windows?. Itprovides dynamic-link libraries that a转载 2014-07-28 14:34:38 · 1337 阅读 · 0 评论 -
wchar_t*和char*之间的互相转换的那些事
[cpp] view plaincopy最近在看一写PE文件格式的东西,想做一个读取PE文件信息的小工具,中间遇到将LPVOID格式无法转换到LPTSTR格式,强制转换屡试屡败,多显示乱码。我们知道LPVOID格式可以直接转换到char *,最后发现一篇写char*与wchar_t*格式互相转换的文章,引用文中代码转换成功。 原帖地址http://www.cnblogs.com/转载 2014-07-28 13:29:48 · 623 阅读 · 0 评论 -
MFC使用自定义资源加载PNG
http://download.csdn.net/download/dfnum1/5468117在MFC中,使用资源中的BMP是简单的,但是若是使用其他的图片资源,却是不容易的.以下为解决办法.首先,在Resource.h里面定义ID:#define IDB_BG 131然后在rc文件里面添加代码:IDB_BG RCPNG "res//背景.pn转载 2014-06-18 09:27:49 · 4811 阅读 · 1 评论 -
vc++加载透明png图片的两种方法-GDI+和CImage
这几天放假在家无聊编一个程序,在加载png时遇到了麻烦,后来用了两个方法解决了。一个是用GDI+,另外就是用vs.net MFC自带的CImage。方法1:GDI+stdafx加入如下:#include //初始化一下com口#include "GdiPlus.h"using namespace Gdiplus;#pragma com转载 2014-06-18 09:26:36 · 1600 阅读 · 1 评论 -
VC 隐藏托盘图标
苦苦寻找的隐藏托盘图标的方法,今天终于搞定,献给大家!#include atlbase.h>#include atlconv.h>#include CommCtrl.h>void ShowTrayIcon(char szIcon[],BOOL show){ HWND hWnd,hWndPaper; unsigned long lngPID;转载 2014-07-25 14:21:14 · 1393 阅读 · 1 评论 -
托盘图标管理器与跨进程SendMessage
通过Spy++可以看出,系统托盘图标是一个ToolbarWindow32控件,要对其进行控制,只要用FindWindow和FindWindowEx找到其句柄,并发送ToolbarWindow32支持的消息即可。1.获取图标数量:TB_BUTTONCOUNT?1DWORD dwCount=::SendMessage(hToolbarWindow转载 2014-07-25 15:54:43 · 2300 阅读 · 2 评论 -
Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的
今天打开好久没用的Microsoft Visual Studio 2010 ,刚才创建了一个C++工程,错误就出现了。只要在VS2010源码编辑器中输入一个字符,它就报错 "Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的"。刚开始一看,以为是扩展引起的问题,结果禁用了所有的扩展都不行。错误上说"您可以在命令行上使用/LOG参数运行应用程序,然后转载 2014-07-02 17:27:44 · 1509 阅读 · 0 评论 -
Dll中封装类
在DLL中封装类,如果要在外面调用其对象的话,要通过一个函数来返回该对象的值,创建过程和平时一样! 一、实验环境 本实例的编程工具及运行环境为:Windowsxp,visual studio 2008,Delphi 7二、实验内容1.用visual studio 2008建立一个动态链接库classdll.DLL,该库中封装了类Cclassdll。2.用Delphi编写测转载 2014-07-23 00:17:45 · 765 阅读 · 0 评论 -
API实现串口通讯
第一节 实现串口通讯的函数及串口编程简介 API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。常用函数及作用下:函数名 作用 CreateFile 打开串口 GetCommState 检测串口设置 SetComm转载 2014-07-22 21:49:25 · 11358 阅读 · 2 评论 -
串口通信
这里采用字符串池实现串口数据接收,串口类改自一个老外写的CSerialPort类。[cpp] view plaincopyprint?/* ** FILENAME CSerialPort.h ** ** PURPOSE This class can read, write and watch one serial p转载 2014-07-22 23:26:41 · 1424 阅读 · 0 评论 -
VC操作INI文件
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString( LPCTSTR lpAppName, LPCTST转载 2014-07-01 10:18:38 · 546 阅读 · 0 评论 -
处理CFormView类 -- 保护类型的构造函数和Create函数(讨厌的东西!!!)
我们创建一个对话框资源后,然后创建一个类(假设为CMyClass)来管理它。如果这个类(CMyClass)是从CFormView派生出来的,并且要在其他类中使用CMyClass的对象,则应如下处理。因为CFormView的构造函数和析构函数都是保护类型的,所以在其他类中是无法访问的,因此无法直接在其他类中声明CMyClass的对象。那么要使用CMyClass,该如何做呢?有两种方法:转载 2014-06-09 16:51:48 · 3336 阅读 · 1 评论 -
详解CreateWindoow()函数
CreateWindow函数功能:该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。若要使用除CreateWindow函数支持的风格外的扩展风格,则使用CreateWindowEx函数代替CreateWindow函数。函数转载 2012-07-21 13:42:21 · 958 阅读 · 0 评论 -
CListCtrl::SetExtendedStyle
CListCtrl::SetExtendedStyleCListCtrl的成员函数声明 DWORD SetExtendedStyle( DWORD dwNewStyle ); 函数功能设置CListCtrl的扩展样式 dwNewStyle指定的扩展样式 LVS_EX_GRIDLINES //绘制表格,网格线。 LVS_EX转载 2012-09-13 09:20:54 · 1571 阅读 · 0 评论 -
PNG透明窗体全攻略(控件不透明)
源代码下载地址:http://download.csdn.net/source/1604248编译环境:vc6+winxp sp3测试通过 这两天在研究透明窗体,总算略有小成。网上大部分文章都是介绍到把窗体弄透明就没有下文。其实窗体透明并不难,难就难在透明的窗体上还要放控件。今天我就把窗体透明一直到控件不透明怎么制作一块给写了吧。 先截张图诱惑下你们,如果你没兴转载 2014-06-18 12:58:22 · 814 阅读 · 1 评论 -
MFC CToolTip用法
1. .h文件声明CToolTipCtrl *m_ToolTip;2.原创 2014-06-18 23:45:11 · 2026 阅读 · 0 评论 -
写注册表设置开机启动的代码
[cpp] view plaincopyprint?void CSetDlg::OnBnClickedSetSet() { // TODO: 在此添加控件通知处理程序代码 int RunOnStartFlag=0; RunOnStartFlag=m_RunOnStart.GetCheck(); if (BST_CHECKED==RunO转载 2014-07-27 21:32:27 · 950 阅读 · 0 评论 -
鼠标去留
题目不醒目,特解 win32编程中,有两个消息比较特别,WM_MOUSEHOVER和WM_MOUSELEAVE。系统不会想应用程序发送这两个消息,MSDN中规定要用到TrackMouseEvent方法来向程序投递这两个消息。去留分析 去WM_MOUSELEAVE,留WM_MOUSEHOVER。打个比方,调用TrackMouseEvent就向在消息队列中设置了一个哨兵,当转载 2015-12-15 15:08:35 · 461 阅读 · 0 评论 -
再次学习MFC多线程及同步
http://www.cnblogs.com/zqrferrari/archive/2010/07/07/1773113.htmlMFC 多线程及线程同步一、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计转载 2015-03-11 17:08:07 · 2351 阅读 · 0 评论 -
对话框之间的参数传递
今天遇到个问题:模态对话框在销毁的时候怎样转载 2014-10-11 14:21:45 · 2973 阅读 · 0 评论 -
MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
对话框打印,网上一搜一大堆,基本分2类:A类: CPrintDialog.DoModal,然后在模态对话框里选打印机、打印配置;B类:GetPrinterDeviceDefaults,调用默认打印机。我的工作内容是理解以上2类后,再根据MSDN,实现MDF对话框后台指定打印机打印。废话不多说,上菜~功能:基于对话框的MFC打印(非文档视图结构),转载 2014-10-10 14:51:59 · 16003 阅读 · 4 评论 -
MFC自定义消息
本文地址:http://blog.163.com/strive_only/blog/static/893801682010101911467765/消息机制是windows的典型运行机制,在MFC中有很多的消息如WM_BTN**等。但是在有些情况下我们需要自定义一些消息去做一些我们需要的功能,MFC的向导不能帮助我们做到这一点,我们可以通过添加相应的代码去完成这个功能。添加自定义消转载 2014-09-16 13:14:37 · 692 阅读 · 0 评论 -
从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起
以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和多线程搅和在一起的时候,事转载 2014-09-13 15:21:07 · 542 阅读 · 0 评论 -
总结GDI+使用方法
开发中难免会用到GDI和GDI+,用的时候都是原创 2014-08-29 16:04:50 · 1009 阅读 · 0 评论 -
MFC 中 Tooltip 实现的几种方式
方法一:利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下:1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText)SetTipText是个回调函数,名字叫什么无所谓,符合原型就行了,原型下面会说。 2、EnableToolTips(TRUE),使用这个方法调用这个转载 2014-08-29 10:30:34 · 830 阅读 · 0 评论 -
[Bluetooth(SDK)]使用WinSock搜索蓝牙设备
containersalignmentnullapplicationuserfunction可以利用下面这些变成元素创建一个查询来搜索一定范围内的远程蓝牙设备:WSAQUERYSET结构体WSALookupServiceBegin函数WSALookupServiceNext函数WSALookupServiceEnd函数注意 为了使清晰起见,文中忽略了错误转载 2014-08-01 15:35:38 · 2692 阅读 · 0 评论 -
[Bluetooth(SDK)]使用WinSock连接到远程设备
你可以通过创建服务端和客户端套接字来连接两个蓝牙设备。服务端套接字必须设定为监听传入连接并接受客户端套接字;客户端套接字在发送连接请求之前必须要知道要连接到的设备的地址。你也可以在Microsoft Windows CE上使用串口仿真方便地创建连接,详情参见“利用虚拟串口连接到远程设备”注意 为了使清晰起见,文中忽略了错误处理在创建连接前,你必须先获得以下信息:Ø转载 2014-08-01 15:31:05 · 2463 阅读 · 1 评论 -
[Bluetooth(SDK)]蓝牙协议栈架构
协议栈是蓝牙技术的核心组成部分,它能使设备之间互相定位并建立连接,通过这个连接,设备间能通过各种各样的程序进行交互和数据交换。下图展示了蓝牙栈内部的支撑层: OBEX是一个对象交换协议,它在WinSock之上实现蓝牙和红外传输。TDI在Microsoft® Windows® CE .NET操作系统架构中,它是类似于WinSock-based u转载 2014-08-01 15:40:01 · 2527 阅读 · 0 评论 -
按键判断之GetKeyState 和 GetAsyncKeyState 区别
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)使用::GetKeyState()返回一个short型的数,short型是16位有符号的数据转载 2014-09-19 17:22:56 · 12873 阅读 · 0 评论 -
内存共享CreateFileMapping用法
感觉这篇文章写得比较详细CreateFileMapping的MSDN翻译和使用心得 测试创建和打开文件映射的时候老是得到"句柄无效"的错误, 仔细看了MSDN以后才发觉是函数认识不透, 这里把相关的解释翻译出来HANDLE CreateFileMapping( HANDLE hFile, //物理文件句柄 LPSEC转载 2014-09-19 10:41:28 · 3253 阅读 · 0 评论 -
VC++中MFC窗口对象的清除
对于vc++初学者来说,总觉得窗口对象的清除过程有些莫名其妙.在程序中看不到对delete的显式调用,这似乎违反了c++中有关初始化和清除的规则.那么,程序是怎样取消一个窗口对象?要消除窗口对象,必须清楚窗口对象的构成.在一个通常的程序中,先创建c++窗口对象,然后由Windows创建实际的窗口结构,并返回句柄与c++对象连接.也就是说,窗口对象包含c++窗口对象和Windows窗口对象,转载 2014-06-18 17:26:01 · 4086 阅读 · 1 评论 -
CString.Format的详细用法(转)
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c转载 2013-05-07 09:25:11 · 763 阅读 · 0 评论 -
CToolTipCtrl使用详细解说
很多的界面设计都需要有Tip提示,下面描述一下Tip的简单使用方法: 1. 首先要New一个CToolTipCtrl的对象m_pContentTip 2. 调用CToolTipCtrl的create函数,指定其父窗口。可以为某个控件,也可以为this。一般设为this。m_pContentTip->Create( this, TTS_ALWAYSTIP );3. AddTool。此转载 2013-02-04 15:40:42 · 521 阅读 · 0 评论 -
GDI在VS2005中的初始化
之前写了一个很简单的GDI画图程序,却始终无法在视图中显示,上网查询,才知道vs2005需要设置一些舒适化才能进行gdi画图。于是转载一篇: Visual Studio 2005本身带有GDI+的所有库函数,所以不用像在VC++6.0里那样,需要将GDI+的头文件和lib文件手工加入到工程中。 但在使用GDI+之前需要首先完成以下几步: 1.在stdafx.h文件中加入转载 2012-09-24 14:56:14 · 614 阅读 · 0 评论 -
DrawText的使用
DrawText函数简单介绍 这个函数的作用很简单,就是在指定的区域内输出格式化的文本。 函数原型:int DrawText( HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UNIT uFormat); hDC是设备上下文句柄。lpString指向将要绘制的UN转载 2013-01-29 08:49:33 · 797 阅读 · 0 评论 -
C++ 中list、vector和deque比较[转]
大家好,这里是首届C++模板武道会的现场,本次武道会由beyond_ml做东,第一场解说员为beyond_ml。由于首次举办这样规模空前的盛会,难免有疏漏之处,还请各位高手不吝赐教。Beyond_ml有理啦。同时也欢迎各位大虾把此次武道会看做是一个虚基类,不断继承,派生出新的比赛。比赛开始:首先介绍比武参赛者:Vector:金山词霸翻译成:矢量,向量等,C++容器模板中的大哥大,就像是转载 2012-12-29 14:40:45 · 682 阅读 · 0 评论 -
ColorMatrix详解
ColorMatrix(色彩矩阵),是GDI+里用来调整图片色彩的矩阵。 什么是矩阵,说白了就是C#里的二维数组。 那么这个矩阵调整色彩的原理是什么,他是怎么来调整色彩的呢?这个要从线性代数里的矩阵相乘说起。 以下段落学过线性代数的读者可以跳过,这里我用自己的理解来描述下矩阵相乘的算法和结果。在线性代数里,两个矩阵相乘,是这样计算的: A矩阵乘以B矩阵,那么新原创 2012-12-14 16:58:55 · 1873 阅读 · 0 评论 -
通过资源ID加载图片
BOOL CTranceDlg::LoadImageFromResourceID( UINT nResID, Gdiplus::Image* &pImg ){ HRSRC hRes = FindResourceW( NULL, MAKEINTRESOURCEW( nResID ), L"PNG" ); if ( NULL == hRes ) { return FALSE;原创 2012-12-13 16:59:05 · 637 阅读 · 0 评论 -
检测本机Office(excel/word)版本
//----------------公共功能库-----------------*/#ifndef FUNC_DZ#define FUNC_DZ#pragma pack(1)//OFFICE类型typedef enum _ragEAppType{ OFFICE_APP_WORD = 0, OFFICE_APP_EXCEL,}EAppT原创 2012-12-10 09:51:35 · 1290 阅读 · 0 评论