MFC
龙图腾
驱动工程师真心喜欢学习真心喜欢技术
展开
-
MFC中Tab控件的使用方法
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl2、创建两个新的对话框资源,其属性作如下修改:Border:none //边界为空,这样它就没了标题栏Style :Child // 这样这个模板就可以当作原创 2011-11-16 08:44:02 · 810 阅读 · 0 评论 -
C/C++:遍历子目录,枚举文件,FindFirstFile + FindNextFile
平时写程序时经常会用到的遍历子目录枚举文件的功能,用 Windows API 函数FindFirstFile() 和 FindNextFile() 直接实现起来会相当繁琐,有许多细节需要注意和记忆,要在短时间内写出可以正常工作的、没有BUG的、能够递归遍历多层子目录并枚举其中所有文件的程序代码,不是一件轻松的事情。以下这个 doFileEnumeration() 函数,是我(liigo)在 Win原创 2011-12-05 19:24:12 · 1260 阅读 · 0 评论 -
学习写一个Hello World驱动
导读: ☆─────────────────────────────────────☆ hellguard (小四★北渡北汉江⊙) 于 (Wed Jun 11 15:44:48 2003) 提到:学习笔记,没有技术含量,高手勿Ctrl-F了日期: 2003-06-10 21:50更新:-------------------------------转载 2011-12-08 17:52:55 · 1127 阅读 · 0 评论 -
MFC 自定义消息四步曲
1. 定义全局变量或宏#define WM_MyMessage (WM_USER + n)n为数字到少大于100或者用 const UINT WM_MYMESSAGE = WM_USER + n一般可以加在stdafx.h 或resource.h 或*.app.h中。他们都是全局变量头文件所以都可以.2. 在所在类的*.H文件增加消息函数声明.p原创 2011-12-19 11:04:13 · 832 阅读 · 0 评论 -
宽字符版文件夹遍历
typedef BOOL (WINAPI *EnumerateFunc) (LPWSTR lpFileOrPath ,WIN32_FIND_DATAW lpFileInfo, void* pUserData); //返回值:返回FALSE中断遍历// 返回TRUE继续遍历//lpPath 遍历路径//nRecursion 遍历深度void doFileEnumeratio原创 2011-12-13 17:37:44 · 835 阅读 · 0 评论 -
C++ 注册表编程
1.基础知识注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分:(1)根键。分为5个,分别为HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG,把它们理解成磁盘的五个分区可以了。(2原创 2011-12-14 09:35:52 · 776 阅读 · 0 评论 -
SetWaitableTimer定时器的使用
使用SetWaitableTimer定时器前先了解一下几个函数:HANDLE CreateWaitableTimer( LPSECURITY_ATTRIBUTES lpTimerAttributes, //安全描述符,可以为NULL BOOL bManualReset, //是否为手动定时器,如果是手动的,需要调用SetWaitableTimer才能将定转载 2011-12-14 15:23:11 · 1462 阅读 · 0 评论 -
如何在VC++6.0中修改主窗口风格
Visual C++是一种面向对象的可视化编程工具,它提供的AppWizard能自动生成应用程序的标准框架,大大减轻了编程的工作量。本文主要介绍如下的编程技巧:修改主窗口风格、创建不规则形状窗口、用鼠标单击窗口标题条以外区域移动窗口、使用上下文菜单、使应用程序只能运行一个实例、使应用程序显示为任务条通知区中的图标和显示旋转文本等。1. 修改主窗口风格AppWizard 生成的应用程序框架的原创 2011-12-22 14:33:41 · 5171 阅读 · 0 评论 -
调试常用的 __FILE__, __FUNCTION__, __LINE__ __DATE__, __TIME__
调试常用的 __FILE__文件 __FUNCTION__函数 __LINE__行号__DATE__日期__TIME__时间没想到 VC6 不支持 __FUNCTION__所以我写了如下的奇怪代码//用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const原创 2011-12-08 17:50:52 · 1518 阅读 · 0 评论 -
成员函数指针与高性能的C++委托
成员函数指针与高性能的C++委托 引子标准C++中没有真正的面向对象的函数指针。这一点对C++来说是不幸的,因为面向对象的指针(也叫做“闭包(closure)”或“委托(delegate)”)在一些语言中已经证明了它宝贵的价值。在Delphi (Object Pascal)中,面向对象的函数指针是Borland可视化组建库(VCL,Visual Component Librar转载 2011-08-15 18:06:50 · 637 阅读 · 0 评论 -
基于wince的录音机
基于wince的录音机基于D:\WINCE500\PUBLIC\COMMON\SDK\SAMPLES\AUDIO\WAVREC 的录音程序建立: PCRecord MFC 工程工程加入:wavrec.cppwavefile.cppwavefile.h将wavrec.cpp 的 winmain 函数声明去掉,把 winmai转载 2011-12-05 17:27:39 · 1745 阅读 · 0 评论 -
关于资源的修改
前两天写一个程序修改exe的资源信息。资源信息的读取API还是比较多的,但是修改的就不多了。经常使用的ResHack工具,修改资源方便的很,但是却没有源码参考。只得自己动手。修改资源的方法可以从API和PE两种方式入手。一、首先介绍从PE入手修改资源:这里我从网上摘抄了一个修改ICON的例子。首先,我们需要两个可执行文件,并且已知这两个exe文件都有图标资源。1、 peSour转载 2011-12-02 13:33:17 · 1187 阅读 · 0 评论 -
获取系统分辨率
看了一些从函数中得到系统分辨率的方法,但我发现如果你只想得到屏幕的长和宽的话,其实是很简单的,如下:procedure TForm1.Button1Click(Sender: TObject);begin Label1.Caption:='Screen Width:'+ inttostr(Screen.Width) ; label2.Caption:='Screen转载 2011-12-02 10:13:35 · 1250 阅读 · 0 评论 -
VC++设置与取得系统音量
MMRESULT rc; // 多媒体函数返回结果变量 HMIXER hMixer; // 混合器设备句柄 MIXERLINE mxl; // 音频线路标准状态信息结构体 MIXERLINECONTROLS mxlc; // 音频线路控制器集合信息结构体 MIXERCONTROL原创 2011-11-17 15:02:19 · 1583 阅读 · 0 评论 -
[VC/MFC]滑动动条控件Slider的用法
在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:主要要方法有:1、设置、取得滑动范围: void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); void GetRange( int& nMin, int& nMax ) const; 2、设置、取得按下左右箭头滑动间隔: int Set转载 2011-11-17 15:04:23 · 1136 阅读 · 0 评论 -
VC++中播放声音的方法
声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSo原创 2011-11-17 15:19:30 · 600 阅读 · 0 评论 -
combo box控件
组合窗口是由一个输入框和一个列表框组成。创建一个组合窗口可以使用成员函数:BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBL原创 2011-11-19 17:46:38 · 620 阅读 · 0 评论 -
CListCtrl使用技巧
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows原创 2011-11-25 16:32:04 · 475 阅读 · 0 评论 -
用Ras的API函数创建一个拨号连接
很久以前我们的项目中曾提到过一个需求,因为拨号连接的设置过于繁琐,希望能够在我们的程序中提供输入几个必要的参数,然后自动生成一个拨号连接。当时我对于RAS也是刚刚接触(其实到现在也只是刚刚入了点门),通过查阅资料知道RasSetEntryProperties加上RasSetEntryDialParams可以实现(如果不清楚的,可以查阅MSDN,里面解释的比较清楚),但是这种方法貌似设置不了mode原创 2011-11-28 22:49:31 · 1815 阅读 · 0 评论 -
[VC/MFC ] VC++实现拨号上网程序详解
大家知道,在Netants、DownLoad Expert等软件中都带有定时拨号上网下载软件的功能。而一般用户的拨号上网,利用的是Windows的Remote Access Service(RAS,远程访问服务)。下面介绍一下其在Visual C++下的实现。 Visual C++为我们提供了包含RAS API声明的“ras.h〃头文件。要在程序中实现拨号上网功能,其大致过程如下:原创 2011-11-28 21:30:32 · 3056 阅读 · 0 评论 -
RAS拔号上网
这两天把CE板儿上的拔号程序初步完成,第一个是CE板儿上自带的MODEM无法使用,最终还是从网上看到一个牛人说改注册表然后映射到COM2口上,很简单的事情,有些时候儿没有弄过就会不知道如何下手。软件倒是费了些周章,从网上找了一个RAS的拔号软件,但他那个有点儿小问题,经过同事的指点,直接调用设置好的连接即可。比如你在CE板儿上建立了一个“我的连接”,直接把这个名字传到RASDIALPARAMS 变转载 2011-12-01 14:39:27 · 1550 阅读 · 0 评论 -
设置listctrl 风格及扩展风格
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标转载 2011-12-01 15:19:52 · 1312 阅读 · 0 评论 -
MBR简介
MBR,全称为Master Boot Record,即硬盘的主引导记录。 为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。 硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition ta原创 2011-12-01 12:04:25 · 1182 阅读 · 0 评论 -
SPI总线协议及SPI时序图详解
SPI总线协议及SPI时序图详解SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 SPI是一个环形总线结构,由原创 2011-12-01 16:32:09 · 4546 阅读 · 0 评论