mfc

VS2010的MFC中配置GDI+

≯℡__Kan透↙ 提交于 2020-04-01 08:44:08
如何在VS2010中的MFC中配置GDI+ 首先,VS2010中已经有GDI+SDK包的,不需要额外下载 1:在stdafx.h文件中加入下面3行代码,添加相应的头文件和库 #pragma comment( lib, "gdiplus.lib" ) #include "gdiplus.h" using namespace Gdiplus; 2:定义一个全局变量 ULONG_PTR m_gdiplusToken; 其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 3:使用GDI+函数前,先,最好放在OnInitDialog()中 Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); 4:使用完GDI+函数后,需要卸载GDI+ Gdiplus::GdiplusShutdown(m_gdiplusToken); 这就是基本的配置了 来源: https://www.cnblogs.com/it20120227/archive/2011

MFC/Win32中使用GDI+

你。 提交于 2020-04-01 08:42:03
一、MFC中使用GDI+的方法: 1、包含头文件与库 在stdafx.h中加入以下三行代码: #include "gdiplus.h" using namespace Gdiplus ; #pragma comment ( lib , "gdiplus.lib" ) 2、安装GDI+ 在使用GDI+之前要进行安装,否则程序不会报错,但绘图不成功。安装方法如下: GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup (&gdiplusToken, &gdiplusStartupInput, NULL ); 安装完成后就可以使用GDI+进行绘图了…… 3、卸载GDI+ 卸载调用如下函数即可 GdiplusShutdown (gdiplusToken); 二、Win32中使用GDI+的方法: 1、包含头文件与库 在stdafx.h中加入以下三行代码: #include < comdef.h > 这个头文件是必须的,要不编译时会有很多错误。 #include " gdiplus.h " using namespace Gdiplus; #pragma comment(lib, " gdiplus.lib ") 第2、3步与MFC是一样的,也列在下面,方便阅读。 2、安装GDI+

MFC学习(六)计算器

岁酱吖の 提交于 2020-03-29 11:24:26
1 stdafx.h    所谓头文件 预编译 ,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译 头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器 通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。    因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。在它前面的所有代码将被忽略,所以其他的头文件应该在这一行后面被包含。否则,你将会得到“No such file or directory”这样让你百思不得其解的错误提示。    Windows和MFC的include文件都非常大,即使有一个快速的处理程序, 编译程序 也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个

VC++6.0重命名MFC工程及类文件

与世无争的帅哥 提交于 2020-03-25 15:05:16
作为MFC新手使用VC++6.0这古董级的东西有时实在痛苦,这有空几天都在想怎么重命名MFC工程的命名空间和类文件。现在总算有个结果,发一下修改过程吧。 首先,使用MFC AppWizard(exe)创建的工程有几个重要的文件: 1.dws文件,它指向工程使用哪个dsp文件。主要内容如下: Project: "MyDemo"=".\MyDemo.dsp" - Package Owner=<4> 2.dsp文件:它储存了工程中的各项信息,就是要修改的主要文件。 3.rc文件:存储工程资源信息 4.clw文件:存储每个窗体对应的类及资源,ClassWizard会使用到。 5.类文件 MFC工程自带的ReadMe.txt有详细说明。如果我们需要修改整个工程,那么上面的文件都要修改,当然还有大部分文件的文件名。 接下来是修改的步骤: 1.重命名类名: 高版本的Visual AssistX带有重命名类名的功能,不过在Cpp文件还是有的函数的类名没有被重命名。我们手动改就是了。修改类名不会影响整个工程,但我们接下来修改了类文件名,工程可就找不到类了。我们改完类名,将头文件引用也改为新的头文件名,然后退出工程。 2.修改文件名 修改类文件为新的名字。如果要修改命名空间,那么把所有命名空间命名的文件都改为新的,包括Resources文件夹里面以旧命名空间命名的文件,不需要就不要改了。 3

MFC: How to set header and footer for print preview (programmatically)?

无人久伴 提交于 2020-03-24 00:07:29
问题 Setting header and footer works for print using the following command where I add header and footer as parameters. ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, &parameters, NULL); But I don't know how to do it for print preview and I don't seem to find relevant document about that. It seems header and footer can be set manually via OLECMDID_PAGESETUP, but first I don't want to bring up the UI during runtime (and OLECMDEXECOPT_DONTPROMPTUSER doesn't work somehow), and second I don't know

MFC应用程序向导生成的文件

一世执手 提交于 2020-03-23 16:41:13
  比方说我们用Visio Studio创建了一个MFC应用程序,名称为Mysdi。在创建这个项目的时候,默认的会生成许多类和文件,就关于这些文件的内容和要点展开以下论述。 框架窗口类头文件   向导为项目Mysdi生成了框架窗口类的头文件MainFrm.h,该头文件用于定义框架窗口类CMainFrame。不同的SDI应用程序,其框架窗口类名和文件名是统一的。CMainFrame类是MFC的CFrameWnd类的派生类,它主要负责创建标题栏、菜单栏、工具栏和状态栏。CMainFrame类中声明了框架窗口中的工具栏m_wndTooBar、状态栏m_wndStatusBar两个成员变量和四个成员函数。 框架窗口类实现文件 向导为项目Mysdi生成了框架窗口类的实现文件Mainfrm.cpp,该文件包含了窗口框架类CMainFrame的实现代码,主要是CMainFrame类成员函数的实现,它实现的框架窗口是应用程序的主窗口。   CMainFrame类的4个主要成员函数中,AssertValid()和Dump()两个函数是用于调试的,其中AssertValid()用来诊断CMainFrame对象是否有效,Dump()用来输出CMainFrame对象的状态信息。第三个成员函数OnCreate()主要用来创建工具栏m_wndToolBar和状态栏m_wndStatusBar

如何正确的关闭 MFC 线程

僤鯓⒐⒋嵵緔 提交于 2020-03-23 02:09:37
3 月,跳不动了?>>> 前言:   近日在网上看到很多人问及如何关闭一下线程,但是我看网上给出的并不详细,而且有些方法还是错误的。小弟在此拙作一篇,不谈别的,只谈及如何正确的关闭MFC的线程,至于Win32和C RunTime的线程暂不涉及。 一.关于MFC的线程   1.MFC的线程有两种,一种称为Work线程,一种称为UI线程。一般情况下Work线程与UI线程的 区别主要在于UI线程有消息队列 (并不是有没有界面,这点要注意,UI线程也是可以没有界面的)。   2.创建这两种线程的区别也不大,可以从创建函数看出。 [cpp] view plain copy // Work线程 CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); // UI线程 CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY

Mouse Move Capture (Mouse leave & Mouse Enter)

半城伤御伤魂 提交于 2020-03-22 09:51:19
问题 Hi i have three controls (CButtton) in my application,whenever mouse move over a control,i want to capture when mouse enters on which control in a window and when it leaves and i have to change the caption of a button control. Thanks in Advance 回答1: There is no windows message/event that indicates 'mouse enter' or 'mouse leave'. However this can be achieved by handling the 'MouseMove' message for your control and capturing the mouse input to check if the point is inside the control area.

Mouse Move Capture (Mouse leave & Mouse Enter)

天涯浪子 提交于 2020-03-22 09:51:02
问题 Hi i have three controls (CButtton) in my application,whenever mouse move over a control,i want to capture when mouse enters on which control in a window and when it leaves and i have to change the caption of a button control. Thanks in Advance 回答1: There is no windows message/event that indicates 'mouse enter' or 'mouse leave'. However this can be achieved by handling the 'MouseMove' message for your control and capturing the mouse input to check if the point is inside the control area.

VS 2017: fatal error RC1015: cannot open include file 'winres.h'

我与影子孤独终老i 提交于 2020-03-21 20:46:17
问题 I just downloaded Visual Studio 2017 and converted my dialog-based C++/MFC project with it (from Visual Studio 2008 SP1.) But then when I go to Resources it shows this error: fatal error RC1015: cannot open include file 'winres.h' And idea how to fix this? 回答1: I just also came across this issue. It seems my friend missed to push some VS 2017 meta file to the server. My quick solution is to change the Windows SDK version to match the Windows 10 OS version or below. You can check your OS