
MFC
文章平均质量分 59
B_H_L
这个作者很懒,什么都没留下…
展开
-
C++程序运行一个实例(互斥量法)
.h文件中:public: HANDLE m_hMutex;.cpp文件中: 程序刚启动时://---------------一下是程序只启动一个实例的方法(互斥量法)------------m_hMutex = CreateMutex(NULL, TRUE, _T("earthworm")); // 检测是否已经创建Mutex// 如果已经创建,就原创 2012-05-08 16:12:47 · 1237 阅读 · 0 评论 -
MFC控件和对话框一起变小变大
一个基于对话框的MFC界面,怎么样才能让对话框里的控件能和对话框同比例变小变大 一般情况下,我们新建的对话框,里面的“确定”和:取消”按钮,在对话框最大化得时候,不会一起变大的,而是保持原来的大小。 最简单的情况: 当我们点击最大化按钮的时候,对话框会最大化,但是控件“确定”和“取消”不会跟着变大。如果我们在对话框上面有多少控件,那么会很丑,而且很不转载 2012-07-04 11:03:21 · 1223 阅读 · 0 评论 -
MFC 获得系统时间的方法
1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年%m月%d日 %X"); MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime) 在Win32程序汇编中有SYSTEMTIM转载 2012-07-05 15:25:37 · 1144 阅读 · 0 评论 -
CreateFileMapping内存映射文件
文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前转载 2012-03-14 10:27:32 · 6218 阅读 · 0 评论 -
CListBox和CListCtrl添加右键菜单
CListBox添加右键菜单:1》重载 virtual BOOL PreTranslateMessage(MSG* pMsg);2》实现方法BOOL Cpage1_listBox::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if(WM_RBUTTONUP ==pMsg->message)原创 2012-05-09 11:54:27 · 6147 阅读 · 0 评论 -
windows中系统开机自动运行程序和自动启动服务
注册表中关于开机自动运行程序和自动启动服务的是哪几个键? Windows启动时通常会有一大堆程序自动启动。不要以为管好了“开始→程序→启动”菜单就万事大吉,实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个文件夹和八个注册键。 一、当前用户专有的启动文件夹 这是许多应用软件自动启动的常用位置,Windows自动启动放入该转载 2012-07-19 10:54:42 · 1135 阅读 · 0 评论 -
windows中对环境变量操作实质上是对注册表的操作
You can modify user environment variables by editing the following Registry key: HKEY_CURRENT_USER \ Environment You can modify system environment vari转载 2012-07-19 20:32:02 · 2203 阅读 · 0 评论 -
windows API 操作注册表函数
如今修改注册表成为继超频之后的又一大热点,许多CFAN通过对注册表的修改使Win98显得更加个性化,诸多报刊杂志也纷纷扯起注册表这面旗帜,令人遗憾的是,在介绍注册表修改的众多的文章中,大都以手工修改为例,极少数文章也只介绍有关修改注册表软件的用法,至于如何在程序中实现却无人提及。为此我在Visual Studio6.0帮助文件中用Registry关键字进行搜索,在翻译软件帮助下及不断的上机实践转载 2012-07-19 20:38:18 · 8188 阅读 · 0 评论 -
MFC 打开外部文件 WinExec,ShellExecute ,CreateProcess
2010年07月30日 目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess》,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。 三个SDK函数: WinExec,ShellExecute ,Creat转载 2012-07-05 10:52:05 · 14479 阅读 · 0 评论 -
MFC中播放声音的方法
声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpsz转载 2013-03-09 19:56:25 · 9810 阅读 · 0 评论 -
Windows枚举所有进程
要编写一个类似于 Windows 任务管理器的软件,首先遇到的问题是如何实现枚举所有进程。暂且不考虑进入核心态去查隐藏进程一类的,下面提供几种方法。请注意每种方法的使用局限,比如使用这些 API 所需要的操作系统是什么(尤其是是否能在 Windows Mobile 下使用)。 本文参考用户态枚举进程的几种方法,原文对于每一种方法都给出了完整的代码,被我照抄下来。还有一篇:如何用 Win转载 2014-06-05 16:17:16 · 967 阅读 · 0 评论 -
MFC CString 操作指南
通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是 CString 的完转载 2012-07-05 10:07:06 · 2558 阅读 · 0 评论 -
MFC获得当前应用程序目录GetCurrentDirectory()和GetModuleFileName()函数
在开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetCurrentDirectory()和GetModuleFileName()函数,GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目录,GetCurrentDirectory()适用于XP等系统,,在WinCE上不能使用,GetModuleFileName()适用于WinCE2转载 2012-07-05 09:53:47 · 1603 阅读 · 0 评论 -
VC编程小技巧之框架窗口及其他
1.修改主窗口风格AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名、窗口是叠加型的、可改变窗口大小等。要修改窗口的缺省风格,需要重载CWnd::PreCreateWindow(CREATESTRUCT& cs)函数,并在其中修改CREATESTRUCT型参数cs。CWnd::PreCreateWindow 函数先于窗口创建函数执行。如果该函数转载 2012-07-04 10:51:31 · 1188 阅读 · 0 评论 -
MFC中PreTranslateMessage函数浅析
作用: PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息转载 2012-05-08 21:39:32 · 960 阅读 · 0 评论 -
CListCtrl表格项的渲染
为CListCtrl组件添加消息NM_CUSTOMDRAW处理:void Cpage2_listCtrl::OnNMCustomdrawListEarthwormThread(NMHDR *pNMHDR, LRESULT *pResult){NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR );*pResult = CDRF_原创 2012-05-09 11:59:25 · 956 阅读 · 0 评论 -
new和malloc区别和联系
new和malloc区别和联系集锦1、new 是c++中的操作符,malloc是c 中的一个函数 2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数 3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而m转载 2012-05-10 10:50:19 · 1763 阅读 · 0 评论 -
VS2008、VS2010中如何屏蔽讨厌的MSVCR*.dll的引用
VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以说是Windows平台上各种IDE环境中的翘楚了。很多别的开发工具已经难望其项背了,如今VS2010也已经面市很长时间了,但是因为笔者囊中羞涩,无法升级硬件,所以也没有办法去进行那个180天的VS2010体验之旅了,实为憾事。当然这是别话,现在我主要使用的依然是VS2008,用它来开发我想要的东西。当然主要指使用转载 2012-05-31 09:46:37 · 1526 阅读 · 0 评论 -
vc打开文件(ShellExecute和WinExec)
ShellExecute函数原型及参数含义如下:ShellExecute(HWND hWnd, //父窗口句柄LPCSTR lpOperation, //操作类型LPCSTR lpFile, //要进行操作的文件或路径LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULLLPCS转载 2012-05-09 12:03:26 · 5850 阅读 · 1 评论 -
从char/wchar_t到TCHAR
一.ANSI和UNICODE1.为什么要使用Unicode? (1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。(3) 提高应用程序的运行效率。 Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成Unicode转载 2012-05-18 08:59:49 · 1318 阅读 · 0 评论 -
char与TCHAR相互转化
char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiBytechar转TCHAR如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写char strUsr[10] = "Hello";TCHAR Name[100];#ifdef UNICODE Multi原创 2012-05-18 20:56:14 · 52823 阅读 · 0 评论 -
ntdll之api
ntdll.dll是Windows系统从ring3到ring0的入口。位于Kernel32.dll和user32.dll中的所有win32 API 最终都是调用ntdll.dll中的函数实现的。ntdll.dll中的函数使用SYSENTRY进入ring0,函数的实现实体在ring0中转载 2014-06-05 16:35:31 · 3318 阅读 · 0 评论