
MFC
文章平均质量分 50
长长的影子
充电中。。。。。。
展开
-
用VC++遍历目录
<br />--- 所谓遍历目录,就是给定一个目录,访问其中的所有文件(包括子目录下的文件)。迭代是比较常用的遍历算法。本文利用C++面向对象的特性,通过一个类CBrowseDir,对目录遍历进行了封装。用户只需掌握该类四个成员函数的用法,就可以在自己的程序中,很方便地实现目录遍历。 <br /><br />---- 类CBrowseDir使用了迭代算法。因为算法不是本文重点,笔者不打算展开进一步讨论,对其感兴趣者可参考相关资料。 <br /><br />一、类成员函数说明: <br /转载 2010-06-25 17:42:00 · 661 阅读 · 0 评论 -
渐进式透明的设置(SetLayeredWindowAttributes的用法)
<br />首先使用:<br />SetLayeredWindowAttributes函数:<br />hwnd是透明窗体的句柄,<br />crKey为颜色值,<br />bAlpha是透明度,取值范围是[0,255],<br />dwFlags是透明方式,可以取两个值: 当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效; 当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明原创 2010-06-19 10:56:00 · 1992 阅读 · 0 评论 -
MFC各种句柄
<br />首先说一下什么是DC(设备描述表) <br />解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 <br /><br />在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindo转载 2010-06-19 16:06:00 · 988 阅读 · 2 评论 -
用MFC对话框做无闪烁图片重绘
<br />用应用程序向导生成一个基于对话框的应用程序<br /> 把对话框Styles里的Border设置为Resizing,并把Minimize box跟Maximize box复选按钮都勾上<br /> 现在我们为资源导入一张位图然后我们为程序添加四个私有变量private:<br /> int height;<br /> int width;<br /> CBitmap myBitmap;<br /> BITMAP bm;<br /> 然后用类向导添加WM转载 2010-06-19 16:07:00 · 373 阅读 · 0 评论 -
com组件初始化
<br />今天做一个检测tuner的小程序,用到了枚举设备,没有任何输出结果,查代码发现用的:<br /> HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC, IID_ICreateDevEnum, (void **) &p->pICreateDevEnum);<br /> 返回值居然错误,才恍然大悟,原来是没有初始化COM组件。<br />加上:<br />CoInitializeEx(NULL原创 2010-06-22 18:13:00 · 3422 阅读 · 1 评论 -
MFC改变窗口标题
<br />用它<br />CString g_strDevName="apple";<br />(AfxGetMainWnd())->SetWindowText(g_strDevName);<br />虽然可以改变了,但是明显窗口出来了,闪了一下才改变。还是不知为什么,看起来刷新很慢的样子<br />原创 2010-06-23 18:09:00 · 451 阅读 · 0 评论 -
sizeof && strlen
<br />昨天一程序:<br />UCHAR uData[1024];<br />char * pResult;<br />uResult = "PCMSG_CA_PMT";<br />memcpy(uData,pResult,sizeof(pResult));<br />当我输出uData时,只输出:<br />PCMS<br /> <br />正常是应该把<br />memcpy(uData,pResult,sizeof(pResult));<br />改为:<br />memcpy(uData,pR原创 2010-06-22 09:50:00 · 375 阅读 · 0 评论 -
CString,int,string,char*之间的转换
<br />1 CString,int,string,char*之间的转换 <br />string 转 CString <br />CString.format("%s", string.c_str()); <br />char 转 CString <br />CString.format("%s", char*); <br />char 转 string <br />string s(char *); <br />string 转 char * <br />c转载 2010-06-22 09:52:00 · 365 阅读 · 0 评论 -
Visual C++线程同步技术剖析 (转载)
Visual C++线程同步技术剖析 (转载)<br /><br />作者:中国电波传播研究所 郎锐■来自:yesky<br />摘要: 多线程同步技术是计算机软件开发的重要技术,本文对多线程的各种同步技术的原理和实现进行了初步探讨。<br /><br />关键词: VC++6.0; 线程同步;临界区;事件;互斥;信号量; <br />正文<br /><br />使线程同步<br /><br /> 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操转载 2010-08-20 15:37:00 · 522 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseFilter
<br /> 今天用VS2005编译DirectShow程序,发现出来很多莫名其妙的链接错误:如下:<br /> <br />error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseFilter::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseFilter@@UAGJPB_WPAPAUIPin@@@Z)<br />error LNK2001: 无法解析的外部符号 "转载 2010-09-02 17:57:00 · 2756 阅读 · 0 评论 -
KillTimer
<br />为何跟killtimer的顺序有关呢?<br />MessageBox("呼叫任务已完成!","任务完成",MB_SYSTEMMODAL);<br />KillTimer(1);<br />和<br />KillTimer(1);<br />MessageBox("呼叫任务已完成!","任务完成",MB_SYSTEMMODAL);<br />不是一样的吗?<br />执行完这两个语句后就跳出OnTimer函数<br /><br />不一样的,第一种写法,先MessageBox,后KillTime原创 2010-11-23 15:12:00 · 1038 阅读 · 0 评论 -
字符串内部查找函数
<br />char* strchr( const char* str, int chr );<br />在str中查找第一次出现的chr,没找到则返回0<br /><br />char* strrchr( const char* str, int chr );<br />在str中查找最后一次出现的chr,没找到则返回0<br /><br />char* strstr( const char* str, const char* substr );<br />在str中查找第一次出现的substr,没找到则转载 2011-02-11 16:16:00 · 454 阅读 · 0 评论 -
基于HOOK和MMF的Windows密码渗透技术
基于HOOK和MMF的Windows密码渗透技术http://blog.youkuaiyun.com/jiaohe2000/archive/2007/09/12/1781695.aspx转载 2011-02-12 10:16:00 · 487 阅读 · 0 评论 -
优化程序
今天很自觉地把以前写的MMI对话程序优化了一下。以前在CDigMMI::OnInitDialog里做了很多初始化工作,其中有些初始化还花费比较长的时间。这样的话,打开MMI窗口就会变得很慢,特别是跟MMI通信失败的情况下,整个窗口都挂死状态。优化:当检测到CAM存在的时候设置个时钟,然后在时钟消息处理函数里检测什么时候MMI到来,到了后再KillTimer 及更新MMI 窗口控件列表的显示。相当于把一些需要长时间等待的事情放到另外一个线程里做,这样的话就不会影响到主线程。MMI窗口的打开和关闭变得比较顺畅。原创 2011-03-25 17:43:00 · 457 阅读 · 0 评论 -
使用CTabCtrl控件实现属性页功能
<br /> <br />Tab Control的运行效果有点像Property Sheet,但两者还是有一些区别。我的理解就是Property Sheet主要用在对话框中,对数据进行进行分类管理。而Tab Control使用范围更广一些,既可以用在对话框,也可以用在视图中,除了可以管理配置数据外,还可以对软件的组织进行规划,比如可以通过它来切换不同的视图等等。<br />当然这不是没有代价的,Tab Control的编程就比Property Sheet的复杂很多。<br /> 我最初有点搞不懂原创 2010-06-18 14:10:00 · 1452 阅读 · 1 评论 -
怎么样捕捉在edit control中按下回车键
编辑框对应的消息响应如下,如果这个里面还是没有,那就要自己在消息处理函数PreTranslateMessage里面进行判断了。EN_CHANGE //编辑框中的文本己更新 EN_ERRSPACE //编辑框内存不足 EN_HSCROLL //用户点击了水平滚动条 EN_KILLFOCUS//编辑框正在失去输入焦点 EN_MAXTEXT //插入的内容被截断 EN_SETFOCUS //编辑框获得输入焦点 EN_UPDATE//编辑框中的文本将要更新 EN_VSC原创 2010-06-17 15:33:00 · 4186 阅读 · 0 评论 -
遍历一个目录下的所有文件
1)怎样使combobox不可写?怎样设置属性?<br />只要设置 type: drop List <br /> 2)如何遍历一个目录下的所有文件。<br />代码:G_CurPath 执行文件的目录,跟执行文件在同一目录下有一个文件夹Transponders,要遍历它里面的所有ini文件。<br /> <br /> G_CurPath = G_CurPath+"//"+"Transponders"+"//*.ini";<br /><br /> HANDLE m_hFind; //保存当查原创 2010-06-25 17:39:00 · 690 阅读 · 0 评论 -
VC:CString 用法整理(转载)
CString 的Left,Mid,Right,Find的使用: CString strCurSelTrans = "12508,V,6285,78"; CString strFreq; CString strSymb; CString strPol; CString strFec; if(strCurSelTrans.Find(",")!=-1) { strFreq = strCurSelTrans.Left(strCurSelTrans.Fi转载 2010-06-28 18:10:00 · 506 阅读 · 0 评论 -
MessageBox 的使用
MessageBox这个函数可以在VC里面显示一个标准对话框。函数原型:int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT, uType);参数含义:HWND hWnd —— 父窗口的句柄。(在使用的时候发现在CView类里面不要填这一项,但是如果是再其他的类中,就要填写)在MFC程序里,如果是窗口类中就可以省略掉HWND hWnd,如果是外部函数就必须得传入个hWnd.LPCTSTR lpText ——转载 2010-06-30 18:02:00 · 451 阅读 · 0 评论 -
CComboBox类的成员
CComboBox类的成员初始化函数Create 创建一个组合框并应用到CComboBox对象上 InitStorage 预先为组合框的列表框中的项和字符串分配内存 通用操作 GetCount 取得组合框的列表框中项的个数 GetCurSel 取得组合框的列表框中当前选中项(如果有的话)的下标 SetCurSel 在组合框的列表框中选择一个字符串 GetEditSel 取得组合框的编辑控件中当前选项的起止字符位置 SetEditSel转载 2010-06-29 17:21:00 · 3555 阅读 · 0 评论 -
CreateThread,AfxBeginThread,PsCreateSystemThread
<br />先举一些使用的例子:<br />1):<br /> //在类中创建一个线程:<br />void CQboxMacDlg::OnOK() <br />{<br /> // --------------------------<br /> DWORD dwThreadId;<br /> m_hMyThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)MyThreadProc, this,0,&dwThreadId);<br转载 2010-07-07 12:11:00 · 3339 阅读 · 0 评论 -
MFC edit control动态设置密码
Password 属性设置为True即可。如果想在程序中动态改变它。设置输入时代替显示的符号:m_edit.SetPasswordChar(‘*');取消它:m_edit.SetPasswordChar(NULL);原创 2010-07-06 13:24:00 · 4280 阅读 · 1 评论 -
Spin Control (上下控件)
<br />上下控件是Windows中最常用的控件之一。它只不过是一对箭头,用户可单击它来增加或减少控件的设定值。通常,紧靠着上下控件有一个编辑控件,称为伙伴编辑控件或伙伴控件,用于显示用户输出的值。上下控件在应用程序中用途非常广泛,但目前在纵多出版资料中很少提及其实现方法,使软件开发者甚感迷惑。其实,在Visual <br />C++6.0中可以很轻松的实现这一控件。笔者通过试验摸索,对上下控件的实现作一简要介绍,以飨纵软件开发朋友。 <br />1. 在Visual <br />转载 2010-07-08 17:39:00 · 4784 阅读 · 2 评论 -
文件的读写
eg:文本中每一行的数据结构Afghanistan Baghlan 36.12 68.7Afghanistan Balkh 36.758 66.896#include "stdafx.h"#include "fstream" #includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){ string strLine; string strCountry,str原创 2010-07-09 17:05:00 · 451 阅读 · 0 评论 -
CStdioFile
<br />昨天把CityList.txt中的国家、城市、经纬度正常地读取出来了。为接下来的Usals命令做好准备工作。<br />iptools虽然算不上宠大,但还是有些复杂的,执行起来也比较慢。嘿嘿,新做个小的工程,只实现一小小点功能去调试,想要的功能测试全部通过了再往那个复杂些的工程上去移,因为它跟其它地方没有多大沾连,功能还相对独立。这样就可以避开复杂又缓慢的大工程,专注于想实现的新功能,方便快捷地搞定。当然,这个用来开发测试功能的小工程中变量名及控件最好全部跟主体工程保持一致,这样测试通过后直接c转载 2010-07-14 16:43:00 · 5431 阅读 · 0 评论 -
CheckMenuItem
<br />选中子菜单项后面的复选框<br />1)在初始化时,设置style,Cheched :True.<br /> <br />2)在程序中动态地必变它,<br />bool m_filter_running; //静态变量<br /> <br />CheckMenuItem(GetMenu(m_MultiDecWindow),IDM_SAMPLE_STARTFILTER,m_filter_running ? MF_CHECKED:MF_UNCHECKED);原创 2010-07-19 17:20:00 · 744 阅读 · 0 评论 -
VS2003 安装错误
<br />在网上下的VS.NET2003中文版。放在E盘解压出来,安装到差不多一半的时候。突然弹出一句提示 <br /> 说找不到E:/VS.NET2003/Program Files/Microsoft Visual Studio:NET 2003/SDK/V1.1/Docs/2052/cpref.Hxs。我按着上面的提示去E盘看看cpref.Hxs这个文件在不在。结果发现根本没看到cpref.Hxs这个文件。我心里就感到纳闷,不会是下载的文件有问题吧。我在不同的地方下了原创 2010-07-21 17:50:00 · 2935 阅读 · 0 评论 -
system("pause");
<br />需要头文件<br />#include <stdlib.h><br /><br />如果你用名字空间的话就是#include <stdlib>.....using namespace std;原创 2010-06-11 14:13:00 · 756 阅读 · 0 评论 -
MFC edit control 用法
1.用SetWindowText设置文本内容并换行:其中控件属性设置:MultiLine=true; want Return = true; strMsg+=s+"/r/n";// 用/r/n换行。//获得EDITCEdit* pBoxOne;pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);//付值pBoxOne->SetWindowText( _T"FOO" );//取值CString str;pBoxOne->GetWindowTex原创 2010-06-17 11:16:00 · 17299 阅读 · 2 评论 -
CreateThread 与 WaitForSingleObject 的应用
做FW的升级小工具时,由于要与读写4M的文件原创 2014-04-11 15:29:45 · 3725 阅读 · 0 评论