MFC函数之BitBlt】的更多相关文章

MFC函数之BitBlt // Cgame123View 绘制 void Cgame123View::OnDraw(CDC* pDC) { Cgame123Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CRect Rect; GetClientRect(&Rect); //屏幕宽度 width = Rect.right - Rect.left; //屏幕高度 he…
系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA Pro & OD 可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“WAKU的第二个破文----Rith's CrackMe #1(非常简单)”. 使用IDA载入程序,在字串表中找出正确注册的提示“Well done cracker!”,并双击交叉参考来到关键代码处: .…
前言:在用mfc框架编写应用的时候,如果注意,你会发现在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey("String");  这是什么函数呢,设置记录字符串,不明觉厉,于是用心去查了一下,分享给大家. 总起:其实很明了,如果你的应用需要使用注册表,则它为你提供了很便利的方法,当然如果不使用系统注册表,这句可以注释掉. SetRegistryKey Causes application settings to be stored in…
 CWnd::PreCreateWindow virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); 返回值: 如果要继续窗口的创建过程,则返回非零值:返回0则表明创建过程失败. 参数: cs一个CREATESTRUCT结构 说明: 框架在与CWnd对象相连接的Windows窗口被创建之前调用这个成员函数.永远不要直接调用这个函数. 这个函数的缺省实现检验窗口类名是否为NULL,如是,则用适当的缺省值来代替.重载这个函数以在窗口被创建之前修改CREAT…
StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的位图拷贝到屏幕上,并且可以根据屏幕画图区的大小来进行伸缩,适应响应的屏幕(或图像控件) BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, in…
CDC::BitBlt介绍 2011-11-04 08:25 19576人阅读 评论(6) 收藏 举报 摘自: http://blog.csdn.net/bberdong/article/details/6934270 设备上下文绘图有很多种方法.例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制.此外,还可以使用CDC类的位图函数来输出位图到设备上下文中. BitBlt 用于从原设备中复制位图到目标设备,语法格式如下: BOOLBitBlt(int x,int y,int nWidth,…
1.MFC常用函数:WinExec()ExitWindowsEx()GlobalMemoryStatus()GetSystemInfo()GetSystemDirectory()GetWindowsDirectory()GetTaskmanWindow() //user32.dll中 获取任务栏窗口句柄OpenProcessToken()打开一个进程的访问令牌GetCurrentProcess()获取本进程句柄LookupPrivilegeValue()修改进程权限AdjustTokenProv…
前提:在InitInstance() 函数的初始化过程中,我们可以看到代码CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CHelloDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CHelloView)); AddDocTemplate(pDoc…
从 InitInstance 成员函数内调用该函数,启用和加载最近使用的(MRU)文件和最后浏览状态的列表.void LoadStdProfileSettings(   UINT nMaxMRU = _AFX_MRU_COUNT ); 参数nMaxMRU:要跟踪的最近使用的文件个数.如果 nMaxMRU 为0,MRU 列表不维护. 头文件 头文件位置:afxwin.h 方法 如果你在新建工程的时候没有选择包含最近文件列表功能,那么可以按照如下的方法为你的工程加入它:1.在你的"文件"菜…
CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); 返回值:如果成功,则返回非零值,否则为0. 参数: lpcs             指向Windows CREATESTRUCT结构对象的指针. pContext     指向CCreateContext结构的指针. 说明: 执行OnCreate时由框架调用.不用调用此成员函数. 缺省实现是从pC…
CWnd::OnEraseBkgnd afx_msg BOOL OnEraseBkgnd( CDC* pDC ); 返回值: 如果它擦除了背景,则返回非零值:否则返回0. 参数: pDC 指定了设备环境对象. 说明: 当CWnd对象的背景需要被擦除时(例如,当窗口大小被改变时),框架就调用这个函数.它被调用以便为绘图准备无效区域. 缺省的实现使用窗口类结构中hbrBackground成员指定的窗口类背景刷子擦除窗口背景. 如果hbrBackground成员为NULL,你重载的OnEraseBkg…
CWnd::OnCreate afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); 返回值: OnCreate必须返回0以继续CWnd对象的创建过程.如果应用程序返回-1,窗口将被销毁. 参数: lpCreateStruct指向一个CREATESTRUCT结构,其中包含了与要创建的CWnd对象有关的信息. 说明: 当应用程序通过调用成员函数Create或CreateEx请求创建Windows的窗口时,框架调用这个成员函数.CWnd对象在窗口…
函数模板的使用 一. 函数模板的使用 使用函数模板可以简化 形参个数相同,而类型不同的函数. template<typename T> //可以用class替换typename int max(int array[],int len) // int array[len] { ; ;i<len;i++) { if(array[i]>imax) { imax=array[i];//取得最大值 } } return imax; } float max(float array[],int…
函数重载的概念 for循环中变量 一. 函数重载的概念 函数重载允许我们使用相同的函数名定义多个函数. 提示: 函数参数类型不同,可重载. 类型相同时,则需要参数个数不同. int max(int a,int b) { ; } int max(int a,int b,int c) { ; } 二. for循环中变量 ;i<;i++);//区别于C语言 // helloc++.cpp : 定义控制台应用程序的入口点. // 三.代码 #include "stdafx.h" #inc…
最近在看VisualC++ 图像处理的书籍,表示一直在从基础做起,今天就记录一个简单功能的实现,显示.bmp格式的位图. 首先需要理解的是窗口创建的过程包括两个步骤:首先擦除窗口的背景,然后在对窗口进行重新绘制. 一般而言,对于单文档或多文档的MFC程序,显示图像的代码要放在OnDraw函数之中.刚刚说过,窗口重绘时,要先将窗口的背景擦除,也就是发送WM_ERASEBKGND消息,然后用OnEraseBkgnd()函数处理这个消息,所以我们的显示图像的代码也可以放在这个函数之中.当然,这里只是为…
第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName); 第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替. 比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序.那么我就可以用上面的函数获得这个…
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手.本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件.图像的打印功能. 一.实现方法 在Windows操作系统下,显示器.打印机和绘图仪都被视为输出设备,正常情况下,系统默认的输出设备是显示器.要使用打印机,首先需…
1.2 MFC简介 MFC是Microsoft提供的放置Windows API的面向对象的包装的C++类库.MFC大约封装了好几百个类,其中有一些可以直接调用,有些类可以作为用户自己的类的基类.一些MFC类比较简单,比如CPoint类代表一个二维数据点:一些类比较复杂,比如CWnd类,它封装了窗口的功能.在MFC程序中,我们并不经常直接用Windows API,而是从MFC类创建并调用其中的成员函数. MFC也是一个应用程序的框架结构.不仅是类的集合,还帮助定义了应用程序的结构并为应用程序处理许…
一.什么是窗口类  在Windows中运行的程序,大多数都有一个或几个可以看得见的窗口,而在这些窗口被创建起来之前,操作系统怎么知道该怎样创建该窗口,以及用户操作该窗口的各种消息交给谁处理呢?所以VC在调用Windows的API(CreateWindow或者CreateWindowEx)创建窗口之前,要求程序员必须定义一个窗口类(不是传统C++意义上的类)来规定所创建该窗口所需要的各种信息,主要包括:窗口的消息处理函数.窗口的风格.图标. 鼠标.菜单等.其定义如下: typedef struct…
MFC的WinMain 使用MFC编程的程序员刚开始都会提出这样一个问题:我的程序是从哪儿开始执行的?回答是:从WinMain()开始执行的.提出这样的问题是由于在他们所编写的MFC应用中看不到WinMain()函数.这个函数是隐藏在MFC框架中,MFC的设计者将它作得很通用(这主要得益于Window的消息驱动的编程机制,使得作一个通用的WinMain()很容易),因此在一般情况下,无需更改WinMain()的代码,MFC的设计者也不提倡程序员修改WinMain()的代码.在MFC中,实际实现W…
在这里,我想谈谈自己学习MFC的一些体会.我是从1997年才开始在Window下编写程序的.在这之前,我编写过一些DOS程序,包括一个简单的全屏幕编辑器和一个带函数的表达式解释器,都是一些小的程序.Window 3.1流行后,我开始在它下面编写程序. 从编写DOS程序到编写Window程序,需要从编程思想上作一个比较大的调整.在DOS下编写程序,程序的总体流程完全由应用程序自己控制:但在Window下,程序的总体流程是由操作系统控制的,这一点对在DOS下“胡作非为”的DOS程序员而然,特别不习惯…
MFC中的窗口创建及窗口消息映射 我经常碰到有人问我有关窗口创建的问题,他们经常把用HWND描述的系统窗口对象和用CWnd描述的MFC的窗口对象混淆不清.这两者之间是紧密联系在一起的,但是MFC为了自身的管理,在CWnd中加了一些额外的内容,包括如何从HWND生成CWnd. 在MFC中,有几种典型的窗口对象,CWnd描述的一般窗口对象,CView描述的视图对象,CFrameWnd描述的SDI框窗对象,CMDIFrameWnd描述的MDI框窗对象等等.在这一章中,主要讨论下述内容: MFC中窗口的…
Meandering Through the Maze of MFC Message and Command Routing Paul DiLascia Paul DiLascia is a freelance software consultant specializing in developing C++ applications for Windows. He is the author of Windows++: Writing Reusable Code in C++ (Addiso…
先看一个例子: 1.创建一个动态链接到MFC DLL的规则DLL,其内部包含一个对话框资源.指定该对话框ID如下:              #define IDD_DLL_DIALOG  2000 2.创建一个基于对话框的mfc应用程序,它包含两个对话框资源,IDD_UI_DIALOG和IDD_EXE_DIALOG.并将后者的ID指定如下:              #define IDD_EXE_DIALOG  2000其中前者是这个应用程序的用户界面,单击上面的按钮,将弹出一个对话框.部分…
一.FFmpeg+SDL+MFC视频播放器 1.MFC知识 1).创建MFC工程的方法 打开VC++ 文件->新建->项目->MFC应用程序 应用程序类型->基于对话框 取消勾选"使用unicode库" 其中,在创建的过程中,单个文档表示意思是只有一个页面(窗口),多个文档表示的意思是有多个页面(窗口). 2).设置控件 找到“工具箱”,就可以将相应的控件拖拽至应用程序对话框中 常用控件有:Button,Edit Control,Static Text等 找到“…
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐:<java编程思想> 4 在VC下执行DOS命令 a. system("md c:\\12"); b. WinExec("Cmd.exe /C md c:\\12", SW_HIDE); c. ShellExecute ShellExecute(NULL,…
文件输入和输出(I/O)服务是所有操作系统的主要工作.Microsoft Windows提供了各种API函数用来读.写和操作磁盘文件.MFC将这些桉树和CFile类融合在面对对象的模型里.其中CFile类允许把文件当做对象,并用CFile成员函数,如Read和Write,对它们进行操作.CFile具有MFC编程人员实现第几文件I/O所需要的所有工具. 尽管用CFile对象实现磁盘文档的读写并没有错,但大部分MFC应用程序不会这么做,而是用CArchive对象.通过MFC实现巧妙的运算符重载,大部…
一.基于Microsoft MFC的编程方法 MFC是微软基础类库(Microsoft Foundation Class)的缩写.与API不同,MFC不是Windows操作系统的组成部分,而是微软公司专为VC++开发的配套软件包.与VC6配套的是MFC6.0.MFC充分使用了面向对象方法中的继承和多态性技术,以类的方式封装了Windows应用程序所涉及的几乎所有的标准部件,如Windows应用程序的架构.各种标准的图形界面元素.其核心是它以C++的形式封装了Windows API的大部分函数.…
1.首先MFC程序需要哪些函数库? Windows C Runtime函数库 LIBC.LIB       C Runtime函数库的静态链接版本 MSVCRT.LIB     C Runtime函数库的动态链接版本 MSVCRTD.LIB      ‘D’表示使用于Debug方式 DLL Import函数库:GDI32.LIB.USER32.LIB.KERNEL32.LIB… MFC函数库:MFC42.LIB.MFC42D.LIB.MFCS42.LIB.MFCS42D.LIB.MFCN42D.…
巧妙地使用定时器能达到意想不到的效果,写界面的时候能实现渐变,也能帮助多线程控制等我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦.其中定时器也可以在MFC程序中很好地利用. 在MFC中和定时器相关的有三个函数:1.设置定时器(定义一个定时器的属性):        SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer)(H…