MFC
文章平均质量分 88
xringm
这个作者很懒,什么都没留下…
展开
-
extern "c" & __stdcall & __cdecl
from:https://blog.csdn.net/liminwang0311/article/details/77170932extern是c/c++语言中表明函数和全局变量作用范围的关键字。该关键字告诉编译器,其声明的函数和变量可以在本模块或其他模块中使用。通常,在模块的头文件中对本模块提供给其他模块引用的函数和全局变量以关键字extern声明。例如,你写了一个DLL,在导出接口中可以声明e...转载 2018-07-03 10:42:59 · 605 阅读 · 0 评论 -
PictureCtrol加载bmp、png图片
1、加载BMPCStatic* pWnd=(CStatic*)GetDlgItem(IDC_PIC);//得到Picture Control控件句柄pWnd->ModifyStyle(0,SS_BITMAP);//修改它的属性为位图pWnd->SetBitmap((HBITMAP)::LoadImage(NULL,_T("1.bmp"),IMAGE_BITMAP,100,5转载 2016-08-16 13:58:39 · 677 阅读 · 0 评论 -
VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。)ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻转载 2016-08-16 13:19:19 · 899 阅读 · 0 评论 -
利用SHBrowseForFolder 产生路径选择对话框 同时指向默认路径文件
如何打开选择路径对话框?现在就用一些代码来说明,如下。 TCHAR szPath[MAX_PATH]; BROWSEINFO br; ITEMIDLIST* pItem; br.hwndOwner = this->GetSafeHwnd(); br.pidlRoot = 0; br.pszDisplayName = 0; br.lpszTitle =转载 2016-05-20 15:52:29 · 442 阅读 · 0 评论 -
工作线程操作主界面控件引起死锁及解决
问题描述:在监控程序中,设计一监控循环。头文件 .hHANDLE m_hEventExit;CWinThread* m_pThread;构造函数中,创建该事件m_hEventExit=CreateEvent(NULL, //转载 2016-05-19 13:24:17 · 248 阅读 · 0 评论 -
MFC 模态对话框dlg.DoModal()返回值
查了很多资料,都说DoModal()返回值为OK或CANCEL键的ID 其实,这种说法是错误的 MSDN是这样说明其返回值的 If successful, the value of the nRetCode parameter specified in the call to EndDialog;otherwise, -1转载 2016-05-18 14:13:54 · 1518 阅读 · 0 评论 -
MFC打开和枚举文件夹文件
http://blog.csdn.net/zhd320/article/details/6767203 1.MFC中BROWSEINFO结构中包含有用户选中目录的重要信息。BROWSEINFO结构 ●定义 typedef struct_browseinfo { HWND hwndOwner; LPCITEMIDLIST pidlRoo转载 2016-05-18 14:11:30 · 1913 阅读 · 0 评论 -
选择文件夹路径
FROM:http://blog.csdn.net/dpsying/article/details/174584011,目的提供一个对话框供用户选择一个文件夹路径。2,原理&实现先贴上这个工具类的源码:在你的程序中使用静态方法 CSelectFolderDlg::Show() 就能显示一个选择文件夹的对话框啦,返回的CString就是所选文件夹路径。转载 2016-05-18 10:17:48 · 1971 阅读 · 0 评论 -
添加RichEdit控件后对话框不显示
在对话框中添加了一个richedit控件,对话框就不显示了郁闷,我试图弹出一个对话框,步骤如下:1.建立了一个对话框资源的模板2.双击模板建立对应的类3.包含头文件4,弹出对话框,代码如下:CAddTypeDlg dlg;dlg.DoModal();但是,却无法弹出对话框?其他的对话框都可以,但就是这个对话框弹不出来,是vc的毛病?还是其他什么呢?转载 2016-04-20 16:40:41 · 1687 阅读 · 0 评论 -
VC2008中影响exe大小和速度的全部编译选项
我再次强调,完全脱离编程环境的C/C++学习方法,不是好的方法,现在所谓的环境中立理论就是“什么都不学”理论,VC、GCC,主流的就两个,精通其中一个就能吃遍天下,教材里就应该选择一个大讲特讲! 作为VC的代表,今天我给大家全面介绍VC中的编译器选项,全面介绍不需要,MSDN里从头到尾都介绍完了,今天我只讲对生成的exe文件大小和速度有影响的。 用VC就得用IDE,转载 2016-04-20 16:14:20 · 2017 阅读 · 0 评论 -
HDC,CDC,CClientDC的区别和联系是什么?
简而言之,HDC是句柄;CDC是MFC封装的Windows 设备相关的一个类;CClientDC是CDC的衍生类,产生对应于Windows客户区的对象CDC类是MFC为了实现GDI功能专门封装的一个类,而且它是基类,由它派生出的类有CWindowDC、CClientDC 的等等,因而他们是继承的关系,CClientDC专门用来绘制窗口或者控件的客户区 pDC 是 类指针 H转载 2016-03-29 12:51:31 · 2095 阅读 · 0 评论 -
MFC OCX控件实现安全初始化和脚本安全的方法http://blog.csdn.net/xiliang_pan/article/details/8264685
原文地址:http://blog.csdn.net/xiliang_pan/article/details/8264685如果不实现该IObjectSafety接口,IE调用时会有如下提示信息:解决方法有两种,如下:方法1:通过IObjectSafety接口实现具体步骤:(1)在TestOCXCtrl.h中#include // f转载 2016-08-16 17:05:10 · 1087 阅读 · 0 评论 -
VC获取系统时间、程序运行时间(精确到秒,毫秒)
1.使用CTime类(获取系统当前时间,精确到秒)CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();//获取系统日期str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);a,从CTimet中提取年月日时分秒 CTime t转载 2016-08-05 09:34:38 · 888 阅读 · 0 评论 -
Vc中BSTR,char和CString的转换
转自:http://blog.csdn.net/zhongguoren666/article/details/18218141、char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:char chArray[] = "This is a test";char * p = "Th转载 2016-08-25 15:24:15 · 232 阅读 · 0 评论 -
WM_CLOSE WM_DESTROY WM_QUIT 区别
在发送 WM_QUIT消息时,要使用PostMessage发送,否则,窗口已经关闭,但任务管理器中进程还存在。可以通过 pDlg->PostMessage(WM_QUIT);或DWORD dwThreadId = GetWindowThreadProcessId(pDlg->GetSafeHwnd(),NULL);PostThreadMessage(dwThreadId,WM_转载 2016-08-12 16:12:11 · 278 阅读 · 0 评论 -
SendMessage、PostMessage原理
本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了解Windows转载 2016-09-14 10:17:38 · 4251 阅读 · 0 评论 -
64位系统重定向
折腾了几回机器,才明白x64上有x64、x86两种注册表,记录下。 //z 2012-2-9 17:40:19 IS2120@CSDN32位注册表被重定向为HKEY_LOCAL_MACHINE\Software\WOW6432Node关于64位Windows操作系统中的注册表修改注册表之前,一定要先进行备份,并且要知道在发生问题时如何还原注册表。转载 2016-03-24 14:51:05 · 3023 阅读 · 2 评论 -
VC中自动改变控件位置和大小的对话框类(转)
一个可以自动改变控件位置和大小的对话框类。从这个类继承的对话框类,只要在OnInitDialog()里写几行简单的代码,对话框上的控件就会随着对话框大小的改变而改变自己的位置和大小。 在用VC开发应用程序时,经常会要做一些可以改变大小的对话框,而这个时候就要求对话框上的控件会随着对话框大小的改变而改变自己的位置和大小。如果控件比较少,那可以在对话框的OnSize()事件里转载 2016-09-12 13:42:23 · 2212 阅读 · 0 评论 -
基于MFC的ActiveX控件
ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中。在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能。MFC为广大VC程序员所转载 2016-08-09 13:38:48 · 714 阅读 · 0 评论 -
TranslateMessage DispatchMessage
TranslateMessage函数函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。.函数原型: BOOL TranslateMessage( CONST MSG *lpMsg );.参数: lpMsg 指向一个含有用GetMes转载 2016-08-29 16:20:30 · 461 阅读 · 0 评论 -
Alternate Winding
见> 第五版 Charles Petzold,P139刚看时,有点摸不着头脑.网上搜索看了些前辈的解释.回头再看书本,发现其实Petzold大牛把这个问题解释简单明了,为何第一次看的时候居然入不了脑子?完全按照书上写的来解释,如下:1 Alternate 模式: 奇数填充,偶数不填充. 从一封闭区域内一个点画转载 2016-08-29 14:27:16 · 522 阅读 · 0 评论 -
基于MFC的ActiveX控件开发
ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中。在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能。MFC为广大VC程序员所转载 2016-08-17 15:42:28 · 436 阅读 · 0 评论 -
VC6.0 debug和release的区别及如何设置
编译在VC++中有两种模式,一种是Release Build另一种是Debug Build。它们之间的区别在于,Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFCRelease库,编译十对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。所以我们应该在Debug转载 2016-08-17 10:38:25 · 589 阅读 · 0 评论 -
CDC的四个派生类CClientDC,CPaintDC,CWindowDC,CMetaFileD
原文地址:http://2004ustb2008buaa.blog.sohu.com/111737011.htmlCDC是Windows绘图设备的基类CClientDC:(1)(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDCCPaintDC:(1)用于响应窗口重绘消息(W转载 2016-03-29 11:31:36 · 1189 阅读 · 0 评论 -
MFC提供的集合类CStringArray类和CPtrArray类
1.CStringArray类CStringArray类可以用来存储CString类型的对象,而且它的容量是可以动态增加的。CStringArrayCObject└CStringArrayCStringArray类支持CString对象数组。CStringArray的成员函数类似于CObArray类的成员函数。由于转载 2016-03-28 18:10:58 · 3922 阅读 · 0 评论 -
事件——win32 API 例子
事件——win32 API 例子 一、简单例子HANDLE hEvent;线程A: WaitForSingleObject(hEvent,INGINITE); //在事件上处于等待状态线程B: SetEvent(hEvent); //用于触发一个事件main: hEvent = CreateEvent(NULL,FALSE,FALS转载 2016-03-24 10:41:13 · 2712 阅读 · 0 评论 -
线程的同步对象
使同一进程的各线程协调一致地工作称为线程的同步。MFC提供了多种同步对象,通过这些类,我们可以比较容易地做到线程同步。最常用的四种:1、临界区(CCriticalSection)2、事件(CEvent)3、互斥量(CMutex)4、信号量(CSemaphore) 一、使用临界区——CCriticalSection类当多个线程访问一个独占性共享转载 2016-03-24 10:40:16 · 1187 阅读 · 0 评论 -
临界区,互斥量,信号量,事件的区别(线程同步)
临界区,互斥量,信号量,事件的区别(线程同步)四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 临界区(Critical转载 2016-03-24 10:37:39 · 1269 阅读 · 0 评论 -
CMutex
一、关于CMutex类 1、CMutex只是对 win32API 的互斥操作进行了封装 2、它的参数与 win32 API 中的 CreatMutex() 相对应 3、CMutex的构造函数调用 CreatMutex() 创建并检查 4、其Lock操作从基类继承,调用WaitForSingleObject()获得所有权,互斥类重载 Unlock 调用ReleaseM转载 2016-03-24 10:37:00 · 604 阅读 · 0 评论 -
CreateFileMapping的MSDN翻译和使用心得
CreateFileMapping的MSDN翻译和使用心得 测试创建和打开文件映射的时候老是得到"句柄无效"的错误, 仔细看了MSDN以后才发觉是函数认识不透, 这里把相关的解释翻译出来HANDLE CreateFileMapping( HANDLE hFile, //物理文件句柄 LPSECURITY_ATTRIBUTES l转载 2016-03-24 10:07:26 · 439 阅读 · 0 评论 -
应用程序的唯一性
程序启动后,如果再次启动程序,不会出现2个程序,或者实现如Notepad++已打开一个文件,再打开另外一个文件,则追加在Notepad++界面上。使用codeproject上别人编写的一个类,加在程序启动时即可。 sinstance.h1234567891011转载 2016-03-24 09:55:21 · 1045 阅读 · 0 评论 -
MFC 定时器用法 SetTimer、KillTimer
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。1.1 用WM_TIMER来设置定时器先请看SetTimer这个API函数的原转载 2016-03-29 14:44:17 · 11247 阅读 · 2 评论 -
简单而完整:MFC骨干程序(深入浅出MFC之读书笔记)
Document/VIew是MFC的灵魂。CDocument可以内嵌其他对象(用来处理基本数据类型如链表、数组等等)。有关档案读写的操作在CDocument的Serialize函数中进行,有关画面显示的操作在CView的OnDraw或OnPaint函数中进行。改写虚函数InitInstance:new一个CMultiDocTemplate对象,此对象规划Document、View以转载 2016-03-29 13:21:52 · 2279 阅读 · 0 评论 -
Shell_NotifyIcon 系统托盘
Shell_NotifyIcon是windows中用来生成系统托盘图标的API函数。一、原型 BOOL Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA lpdata );二、参数及返回值说明1.dwMessage:[输入参数] 说明要执行的动作。动作的可选值如下: NIM_ADD 增加一个转载 2016-01-13 11:04:24 · 586 阅读 · 0 评论 -
ScreenToClient 和 ClientToScreen
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。 用GetClientRect返回的REC转载 2016-01-13 15:38:45 · 827 阅读 · 0 评论 -
临界段——win32 API函数
临界段——win32 API函数(2010-05-30 10:52:25)转载标签:api函数win32句柄临界段线程it分类: 多线程编程一、有关函数: InitializeCriticalSection() 创建一个临界段 DeleteCriticalSection()转载 2016-03-24 10:43:51 · 314 阅读 · 0 评论 -
信号量——win32 API函数
一、关于信号量1、在信号量中有一个内置的计数值,用于对资源进行计数;同时它通过内置的互斥机制保证在有多个线程试图对计数值进行修改时,在任一时刻只有一个线程对计数值进行修改。2、信号量的两个核心操作是Up操作(提高计数值)和Down操作(降低计数值): 1)Down操作: 检查信号量的计数值是否大于零 1》若大于零,信号量的计数值减一(即用掉了一个信号量计数了)转载 2016-03-24 10:46:30 · 1853 阅读 · 0 评论 -
WM_COPYDATA消息
进程之间通讯的几种方法: 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。常用的方法有 1.使用内存映射文件 2.通过共享内存DLL共享内存 3.使用SendMessage向另一进程发送WM_COPYDATA消息 比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种经济实惠的一中方法. WM转载 2016-03-28 15:24:26 · 885 阅读 · 0 评论 -
钩子(hook)编程
钩子(hook)编程 一、钩子介绍 1.1钩子的实现机制钩子英文名叫Hook,是一种截获windows系统中某应用程序或者所有进程的消息的一种技术。下图是windows应用程序传递消息的过程:如在键盘中按下一键,操作系统将收到键按下消息,把消息放入消息队列,然后消息队列对消息进行派发,发给相应的应用程序,经过应用程序处理后发给操作系统,操作系统再调用相应的应转载 2016-03-28 13:19:43 · 1279 阅读 · 0 评论 -
HOOK API入门之Hook自己程序的MessageBoxW
原文地址:http://blog.csdn.net/friendan/article/details/12222651说到HOOK,我看了很多的资料和教程,无奈就是学不会HOOK,不懂是我的理解能力差,还是你们说的不够明白,直到我看了以下这篇文章,终于学会了HOOK:http://blog.sina.com.cn/s/blog_628821950100xmuc.html转载 2016-03-28 13:14:28 · 1310 阅读 · 0 评论