
MFC
逍遥子_
重点关注大并发处理、分布式计算、微服务、物联网、大数据等领域
展开
-
MFC中的GDI绘图
一.关于GDI的基本概念什么是GDI Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。 /* Bitmap Header Definition */定义了BITMAP位图结构/* Mapping Modes */定义了DC中的坐标映射方式,包括以下常用函数:转载 2012-12-11 13:45:59 · 1751 阅读 · 0 评论 -
MFC 常见窗口操作
1、改变窗口大小或全屏窗口可用下面的代码:MoveWindow(hDlg,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),TRUE); 2、去掉窗口的边框可用下面的代码:LONG nStyle= GetWindowLong( hDlg, GWL_STYLE);LONG newStyle=原创 2012-12-27 15:56:46 · 2578 阅读 · 0 评论 -
使用CImage绘制半透明图片
最近对一个项目中的软件进行了一些界面性能的改进,我主要是用CImage替代了一些以前用GDI+实现的内容。使用中发现CImage对半透明图片的绘制,是有问题的,半透的部分总是显示一些很奇怪的内容(颜色很突兀)。后来经过仔细追查,终于找到了原因。原因是这样的,CImage的默认绘制算法,对于目标点的计算算法是这样的:displayColor = sourceColor + backg转载 2013-04-21 11:18:44 · 2145 阅读 · 1 评论 -
error LNK2005: _DllMain@12 already defined in MSVC
error LNK2005: _DllMain@12 already defined in MSVC方案一、编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一转载 2013-05-10 09:48:00 · 1920 阅读 · 0 评论 -
VS2010+Opencv-2.4.0的配置攻略
摘要:在VS2010环境中应用Opencv,网上找到了很多配置方法,但大多都是老版本的,很多新手面对最新版本的Opencv无从下手,就给新手童鞋写了这么一篇超级详细的配置攻略,贴上来共享。要强调一点的就是,这种配置方法里使用的Opencv库是直接安装Opencv时候自带的dll库,在你的VS里面是无法调试Opencv的。如果需要调试Opencv,必须应用自己编译出来的Opencv库,具体怎么编译自转载 2013-05-26 10:41:49 · 1231 阅读 · 0 评论 -
lib和dll文件的区别和联系
什么是lib文件,lib和dll的关系如何 ?(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的转载 2013-05-14 08:45:21 · 1345 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(zz)
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该D转载 2013-05-14 14:01:59 · 1459 阅读 · 0 评论 -
VS2008中C++打开Excel(MFC)
第一步:建立project选择C++下的MFC Application选择dialog based,中文。之后点击finish第二步:导入EXCEL头文件选择Project->AddClass->MFC Class From Typelib后,点击Add,进入MFC ClassFrom Typelib Wizard对话框下,选择Microsoft转载 2013-06-03 15:54:37 · 2501 阅读 · 0 评论 -
VS2008操作PPT
VC6.0控制PPT很方便,网上的代码也很多,到了.NET,操作office的方式有所改进,完全按6.0的方式会出很多问题,根据做的有关用VS2008操作PPT的工作,整理一下。开始是要用VS2005的,发现问题很多,似乎根本都调不了,改到2008后很快就能运行了,按理说两个应该是差不多的,不知道2005出什么问题了。现在用2008操作PPT:首先创建一个MFC的对话框程序,如图转载 2013-06-04 14:49:36 · 2040 阅读 · 0 评论 -
MFC为窗口创建线程,以及线程与窗口间的通信
1、定义向线程传递的参数类型,例如(可以根据自己的需要来定义):struct t_DebugerThreadParam{ HWND m_hMainWnd; HWND m_hDebugerWnd; CString* m_pLastFileName;};2、创建线程,并向线程传递所需参数//向线程传递的参数struct t_DebugerThreadParam{原创 2013-01-07 11:34:16 · 6486 阅读 · 3 评论 -
MFC中常见控件的操作
1、下面的代码用于获取屏幕的长度和宽度 int iWidth = GetSystemMetrics(SM_CXSCREEN); // int iHeight = GetSystemMetrics(SM_CYSCREEN); ::InvalidateRect(NULL,&CRect(0,0,iWidth,iHeight),FALSE);//重绘该区域2、下面的代码用于设置控原创 2012-12-11 15:08:36 · 1434 阅读 · 0 评论 -
MFC工程使用flash控件
<!--p {margin-bottom:0.21cm}-->利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。 我们分为两步来走: 一、将flash动画嵌入自己的程序中,这一点比较简单,使用sh转载 2013-03-21 08:20:57 · 1905 阅读 · 0 评论 -
MFC模态与非模态对话框的创建与销毁
1、模态对话框的创建(1)添加新的模块对话框资源,在ResourceView标签中右键项目选择“add resource...”,添加一个对话框资源,并修改其ID(主要为了方便后续操作),例如修改为IDD_DLG_TEST1。(2)为该新添加的窗口创建新类CDlgTest1(3)创建模态对话框:*定义一个CDlgTest1类的指针m_pDlgTest1.*为类m_pDlgTes原创 2012-12-29 09:29:42 · 1983 阅读 · 0 评论 -
MFC中打开指定文件夹并默认选中该文件夹中的某个文件
相关代码如下:CString strParam(_T("/select,"));strParam += m_strLastFilePath;ShellExecute(0,_T("open"),_T("Explorer.exe"),m_strLastFilePath,0,SW_NORMAL);其中: m_strLastFilePath是指定的文件名(包含全路径)原创 2013-01-07 11:03:59 · 3016 阅读 · 0 评论 -
MFC中将窗口最小化到系统托盘和还原
通过以下步骤可以在MFC程序中将窗口最小化到系统托盘,和还原成窗口,附加代码中如有特殊说明则会用红色标出。1、添加一个ICON图标,其ID为IDI_ICON_TESTICON,在VS2008坐标的Resource View(资源视图)中添加,该图标主要用于在托盘区显示;在头文件中定义添加托盘图标的消息号(用户所有对托盘的消息将对应此消息号):#define WM_ICON_原创 2012-12-28 14:26:27 · 2202 阅读 · 0 评论 -
通过MFC窗口获取方向键
1、启动时,从配置文件中读取上次保存的方向键键值,并将这些配置显示到窗口中(1)从配置文件中读取方向键,并将其显示到窗口:iCfgValue = GetPrivateProfileInt(_T("AppChoice"),_T("iCommandU"),0,filePath);//从配置文件中读取方向键的值if (!_IsDirectionKey(iCfgValue,m_csStyle原创 2013-01-18 16:04:36 · 2612 阅读 · 0 评论 -
MFC获取文件夹下的所有文件名
1、获取路径:通过CFileDialog获取文件夹的路径,以及文件夹下面的一个文件OnBnClickedBtnOpenfile(){ // TODO: Add your control notification handler code here CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 CString csDi原创 2013-01-21 17:51:14 · 9470 阅读 · 0 评论 -
CreateThread、_beginthread与AfxBeginThread的区别及其注意事项
在windows下一般由以下三种方式来进行线程操作: 1、通过CreateThread(),对应线程结束函数ExitThread(); 2、通过_beginthread(),对应线程结束函_endthread(); 3、在MFC程序中还可以通过AfxBeginThread();对应线程结束函数AfxEndThread(),它们是MFC层面进行的原创 2013-02-20 09:43:43 · 2464 阅读 · 2 评论 -
在VS(2005、2008、2010)的MFC工程中添加flash控件
一、准备工作第一步:下载并安装AdobeFlash Player。从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的FlashPlayer(大约为2.66M),并安装。对于Windows 32位系统,其默认安装目录为:C:\WINDOWS\system32\Macromed\Flash\;对于64位系统,为:C:\Windows\SysWOW转载 2013-03-18 18:15:30 · 3127 阅读 · 0 评论 -
ShockwaveFlash控件详解
属性:1.AlignMode (读写)语法:AlignMode As Long说明:对齐方式,与 SAlign 属性联动。当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片(没有被放大的)在控件中显示的位置可用该属性调整。 该属性值由标志位组成。如图,将该属性值(二进制)中相 应的位标记为 1 就设置了相应的对齐方向。属性值与相应的对齐方式。后面括号里是二进转载 2013-03-18 17:43:26 · 2545 阅读 · 1 评论 -
MFC如何调用Flash控件
新项目中需要在mfc框架中播放swf,因此决定使用flash控件:第一步:在本机安装flash10Flash activex控件一般安装在用户系统目录下:C:\WINDOWS\system32\Macromed\Flash\其中大版本号用数字表示,如9,10,11等,小版本号用小写字母表示,如a, b, c, d, e。如最新稳定版本为:Flash10e.ocx。第二步:通过r转载 2013-03-18 17:44:17 · 2454 阅读 · 0 评论 -
代码开发过程中对日志的使用总结
在日常开发过程中,日志是代码的必要组成部分,一个好的代码也必然有一个好的日志输出,优秀的日志不仅可以快速帮助我们分析定位问题还可以在对日志的数据挖掘中产生很大的威力。 1、java在发生异常时可以打印它的堆栈信息以帮助调试,但是java的异常也有下列问题: 1)java出现异常时只能展示静态的调用堆栈信息,对应异常之前的调用参数则无法进行展示,也就是只知道哪里发生了异常,而不知道是哪些数原创 2015-04-20 14:01:46 · 5789 阅读 · 0 评论