VC6.0中使用 VFW并响应鼠标双击实现全屏显示
VC6.0中控件及按钮的设置和使用
VC6.0中控件及按钮的设置和使用VC学习笔记1:按钮的使能与禁止用ClassWizard的Member Variables为按钮定义变量,如:m_Button1;则m_Button1.EnableWindow(true); 使按钮处于允许状态m_Button1.EnableWindow(false); 使按钮被禁止,并变灰显示VC学习笔记2:控件的隐藏与显示用CWnd类的函数BOOL ShowWindow(int nCmdShow)可以隐藏或显示一个控件。
例1:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_HIDE ); //隐藏控件例2:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_SHOW ); //显示控件以上方法常用于动态生成控件,虽说用控件的Create函数可以动态生成控件,但这种控件很不好控制,所以用隐藏、显示方法不失为一种替代手段。
VC学习笔记3:改变控件的大小和位置用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);第一个参数我不会用,一般设为NULL;x、y控件位置;cx、cy控件宽度和高度;nFlags常用取值:SWP_NOZORDER:忽略第一个参数;SWP_NOMOVE:忽略x、y,维持位置不变;SWP_NOSIZE:忽略cx、cy,维持大小不变;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ) ; //编辑控件的大小和位置都改变以上方法也适用于各种窗口。
visual basic6.0精简版使用方法
visualbasic6.0精简版使用方法Visual Basic 6.0是一种老版本的编程语言和集成开发环境(IDE),用于快速开发Windows应用程序。
以下是Visual Basic 6.0精简版的简要使用方法:1. **安装和设置**- 下载和安装Visual Basic 6.0精简版的安装程序。
- 运行安装程序,按照提示进行安装,并选择合适的安装选项。
- 安装完成后,打开Visual Basic 6.0精简版。
2. **创建新项目**- 打开Visual Basic 6.0精简版后,选择"File" 菜单,然后选择"New Project"。
- 在弹出的对话框中,选择项目模板,例如"Standard EXE"(标准可执行文件)。
- 点击"OK" 创建新项目。
3. **界面设计**- 在项目中,使用可视化设计器创建和设计用户界面。
- 在"Toolbox" 工具箱中选择所需的控件(如按钮、文本框、标签等),然后在窗体上拖放控件,调整其位置和大小。
- 双击控件可打开对应控件的代码编辑器,编写控件的事件处理程序。
4. **编写代码**- 在"Code" 窗口中编写程序逻辑。
- 使用Visual Basic 6.0的语法和函数,编写事件处理程序、条件判断和循环等代码。
- 可以使用内置的开发工具和功能,如代码提示、调试工具等,加快开发过程。
5. **编译和运行**- 完成代码编写后,选择"File" 菜单,然后选择"Make xxx.exe",其中"xxx" 是你的项目名称。
- 编译完成后,会生成一个可执行文件(.exe),该文件可以在Windows上运行你的应用程序。
需要注意的是,由于Visual Basic 6.0是一种老版本的开发工具,如果你的操作系统是Windows 7、8或10,可能会遇到兼容性问题。
vc 6.0的使用技巧
介绍VC6.0的18个实用小技巧VC 用的太熟的一个后果是看到有人用UltraEdit写VC程序时觉得不可理解。
另一个后遗症是,我很喜欢用快捷键,熟悉了VC的这套快捷键后,用其他软件的时候,如果快捷键设置和VC的习惯设置冲突就觉得很难受。
比如说SoftIce,很久以前就开始用,至今还没习惯。
下面说说我在使用VC IDE时经常用到的一些快捷键。
CTRL+TAB:在IDE打开的文件间切换。
我喜欢在IDE里同时打开很多文件,用CTRL+TAB来回切换,浏览代码很方便。
LEO的习惯跟我相反,他看完一个文件后会顺手把文件关掉。
有一次他看到我的IDE里居然开了几十个文件,惊讶坏了,呵呵。
CTRL+SHIFT+SPACE:快速查看函数声明。
有了这个以后查MSDN的次数大大减少。
CTRL+]:快速定位{}。
看代码时常用,另外用来检查大括号是否配对很方便。
相比之下page up/page down用的比较少,因为老是觉得这个定位代码不够精确。
CTRL+SHFT+]:选中大括号之间的代码。
代码段拷贝的时候常用。
在一次移植一段C 程序到C++程序时学会的。
F12:快速定位到宏/变量/函数的定义。
VC6第一次用要先生成BROWSE INFO,速度比较慢,VS2003可以直接定位。
ALT+F8:格式化代码。
常和CTRL+A或者CTRL+SHIFT+]连用。
我看到格式不整齐的代码时会很难受。
CTRL+X, CTRL+C, CTRL+V:有时候跟别人开玩笑说,其实编程挺简单的,会CTRL+C/CTRL+V就行。
CTRL+Z, CTRL+Y:UNDO, REDO。
修改代码时常用。
CTRL+F2, F2:设置、查看书签。
在VS2003中一度习惯了CTRL+K, K/CTRL+K/N, CTRL+K/P的组合,后来由于来回在VC6、VS2003之间切换,还是觉得统一用CTRL+F2, F2比较好。
ALT+-->, ALT+<--:光标移到下个单词。
Visual C++6.0使用简介
Visual C++6.0使用简介Visual C++6.0集成环境有良好的界面并支持汉字系统,该环境支持C语言程序的编译、链接、运行与调试。
下面简要介绍Visual C++6.0环境下C语言程序的操作方法。
1.Visual C++6.0的启动双击桌面上的Visual C++6.0快捷方式,或通过执行“开始——程序——Microsoft visual studio 6.0——Microsoft visual C++6.0”,或执行文件“C:\Program files\Microsoft visual studio\COMMON\MSDev98\Bin\MSDEV.EXE”进入Visual C++6.0。
其工作界面如图所示,该窗口大体上可分为四部分:上部为菜单和工具栏;中左部分为工作区(Workspace)显示窗口这里将显示处理过程中与项目相关的各种文件种类等信息;中右部为编辑区,是显示和编程序文件的操作区;下部为输出(Output)窗口区,程序调试过程中,进行编译、链接、运行时输出的相关信息将在此处显示。
2.建立一个C语言程序单击“文件”菜单中的“新建”命令。
在打开的“新建”对话框中选择“文件”选项卡。
选择“C++ Source File”,并设置文件保存位置,然后在“文件”文本框中输入文件名,如图所示:单击OK按钮,打开Visual C++6.0的主窗口,如图所示:3.0输入源程序在主窗口编辑区输入源程序并保存。
注意,如果给文件名加上扩展名为“.c”,表示是C 源程序,如果扩展名为“.cpp”,则表示是C++源程序。
4.0编译源程序选择Build----Compile或单击工具栏上的相应快捷按钮后,弹出对话框提示是否建立一个默认的项目工作区,选择“是”,开始编译。
编译完成,Visual C++6.0的输出框中输出相关信息,如果程序中有错误,会输出相应的错误提示。
若编译有错误,双击提示的错误信息,在源程序的错误行前会出现标记。
VC 60使用方法
本文由1194791811贡献doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
Visual C++ 6.0 上机指南一、Visual C++ 6.0 概述Visual C++6.0 是微软公司推出的目前使用极为广泛的基于 Windows 平台的可视化集成开发环境,它和 Visual Basic、Visual Foxpro、Visual J++等其它软件构成了 Visual Studio(又名 Developer Studio)程序设计软件包。
Developer Studio 是一个通用的应用程序集成开发环境,包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。
使用 Visual Studio,可以完成创建、调试、修改应用程序等的各种操作。
VC++6.0 提供面向对象技术的支持,它能够帮助使用 MFC 库的用户自动生成一个具有图形界面的应用程序框架。
用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。
VC++6.0 除了包含文本编辑器,C/C++混合编译器,连接器和调试器外,还提供了功能强大的资源编辑器和图形编辑器,利用“所见即所得”的方式完成程序界面的设计,大大减轻程序设计的劳动强度,提高程序设计的效率。
VC++的功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好地进行系统软件设计及通信软件的开发。
二、使用 Visual C++ 6.0 建立 C 语言应用程序利用 VC++6.0 提供的一种控制台操作方式,可以建立 C 语言应用程序, Win32 控制台程序(Win32 Console Application)是一类 Windows 程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们将对使用 Visual C++ 6.0 编写简单的 C 语言应用程序作一个初步的介绍。
vc6.0安装教程与调试技巧
vc6.0安装教程与调试技巧vc6.0的安装过程1.首先解压安装文件的压缩包2.然后再选择安装的版本,VC6CN 表示的是中文版,VC6EN表示英文版。
3.打开VC6CN文件夹,其中有如下图标,鼠标双击。
4.如下图所示就是我们安装的第一步,单击下一步。
5.选择“接受协议”后单击下一步。
6.本软件属于破解版,故无需输入产品ID号码,直接单击下一步。
7.选择“安装visual c++6.0中文企业版(I)”,这就是我们要安装的程序,单击下一步。
8.单击下一步。
9.如下界面,单击“继续”,开始安装软件。
10.点击“确定”。
11.选择“是”,继续安装。
12.选择“typical”继续安装13.选择“ok”。
14.选择“确定”15.选择“确定”16.取消“安装MSDN”前面的勾号,选择“退出”。
17.选择“是”,取消MSDN的安装。
18.程序安装完毕,再电脑的“开始菜单”中,选择“所有程序”,在“Microsoft Visual C++ 6.0”目录中选择“Microsoft Visual C++6.0”就可以运行程序了。
也可以将这个图标发送到桌面快捷方式,这样就可以直接在桌面上运行程序。
调试技巧调试程序可以帮助的了解程序是怎样运行的。
1、如何快速地规范代码缩进格式选中所需要规范的代码,按shift+F82、如何在Release状态下进行调试Project->Setting…->Project Settings对话框,选择Release 状态。
“C/C++”标签页中的Category选General,Optimizations 选Disable(Debug),Debug info选Program Database。
在“Link”标签页中选中Generate debug info复选框。
注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。
VC++6.0操作简介
VC++6.0操作简介一、 VC++6.0VC++6.0二、 VC++6.0环境的基本操作1. 建立应用程序操作步骤如下:(1) 关闭 当前工作区:【文件】→【关闭 工作区】 (必要时)(2) 建立工程:【文件】→【新建】(出现“新建”对话框)在“新建”对话框中选中“工程”选项卡→选中其中的“Win32 Console Application”项→选择存储“位置”→输入工程名→单击“确定”按钮(出现“Win32Console Application”对话框)在“Win32 Console Application”对话框中选择“An empty project”选项→单击“完成”按钮注意:在操作过程中,如果出现提示性对话框,可根据具体情况按“确定”或“取消”按钮。
至此,一个新的工程已经建立,接下来,可以在该工程中建立文件或(和)将已经存在的文件添加到工程中:在工程中新建文件:【工程】→【添加工程】→【新建】(出现“新建”对话框)在“新建”对话框中选中“文件”选项卡→选中其中的“C++ Source File”或者“C/C++ Header File”项→选择新建的置(目录)→输入文件名→单击“确定”按钮→输入文件内容。
例如,新建的名为M1.cpp的源文件内容如下:向工程中添加文件【工程】→【添加工程】→【Files…】(出现“插入文件到工程”对话框)在“插入文件到工程”对话框中选中要插入的文件→选择文件要插入的工程(插入到)→单击“确定”按钮2.编辑文件操作步骤如下:在“工作区”窗口中选择“FileView”选项卡→展开相应工程的文件分支(工程名files)→双击类要编辑的文件名(此时,相应文件的内容已经显示在编辑窗口中)→对文件进行编辑3.编译、构建与运行应用程序编译源文件:在“工作区”窗口选择“FileView”选项卡→选择要编译的源文件→【编译】→【编译xx】构建可执行文件:设置活动工程(工作区中有多个工程时):【工程】→【设置活动工程】→【xx (工程名)】【编译】→【构建xx.exe】运行应用程序:设置活动工程(工作区中有多个工程时):【工程】→【设置活动工程】→【xx (工程名)】【编译】→【执行xx.exe】4.在工程中新建类(1)新建类:设置活动工程(工作区中有多个工程时需要此步)。
VC++6.0使用方法
Visual C++ 6.0上机指南一、Visual C++ 6.0概述Visual C++6.0是微软公司推出的目前使用极为广泛的基于Windows平台的可视化集成开发环境,它和Visual Basic、Visual Foxpro、Visual J++等其它软件构成了Visual Studio(又名Developer Studio)程序设计软件包。
Developer Studio是一个通用的应用程序集成开发环境,包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。
使用Visual Studio,可以完成创建、调试、修改应用程序等的各种操作。
VC++6.0提供面向对象技术的支持,它能够帮助使用MFC库的用户自动生成一个具有图形界面的应用程序框架。
用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。
VC++6.0除了包含文本编辑器,C/C++混合编译器,连接器和调试器外,还提供了功能强大的资源编辑器和图形编辑器,利用“所见即所得”的方式完成程序界面的设计,大大减轻程序设计的劳动强度,提高程序设计的效率。
VC++的功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好地进行系统软件设计及通信软件的开发。
二、使用Visual C++ 6.0建立C语言应用程序利用VC++6.0提供的一种控制台操作方式,可以建立C语言应用程序,Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们将对使用Visual C++ 6.0编写简单的C语言应用程序作一个初步的介绍。
1.安装和启动运行Visual Studio软件中的setup.exe程序,选择安装Visual C++ 6.0,然后按照安装程序的指导完成安装过程。
安装完成后,在开始菜单的程序选单中有Microsoft Visual Studio 6.0图标,选择其中的Microsoft Visual C++ 6.0即可运行(也可在Window桌面上建立一个快捷方式,以后双击即可运行)。
vc++6.0打造单文档界面与多文档界面的编程
vc++6.0打造单文档界面与多文档界面的编程VC++6中,可以利用MFC向导分别创建单文档和多文档界面的应用程序。
有了这两种类型的应用程序,您就可以实现简单的记事本,写字本和WORD的功能了。
以下介绍一个在文档中输出一段文字,点击菜单项,输入文字内容按OK按钮后可以更改输出的文字。
1.首先,点击MFC向导,选择多文档视图类型,新建一个名为MdiDemo的工程。
2.新建一个对话框。
上面放置一个Static控件和一个Edit控件,按CTRL+W,将Edit控件改成m_Caption.3.新建一个类与对话框对应,如CDlgDemo类。
4.在菜单中,增加一项Demo,并增加菜单项Test.按CTRL+W,并双击后,在消息的上面选择Doc,下面选择Command,双击就产生了对应的事件处理函数。
5.在MdiDemoDoc.cpp类中输入以下:// DlgDemo.cpp : implementation file//#include "stdafx.h"#include "MdiDemo.h"#include "DlgDemo.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////// //////////// CDlgDemo dialogCDlgDemo::CDlgDemo(CWnd* pParent /*=NULL*/): CDialog(CDlgDemo::IDD, pParent){//{{AFX_DATA_INIT(CDlgDemo)m_Caption = _T("");//}}AFX_DATA_INIT}void CDlgDemo::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CDlgDemo)DDX_Text(pDX, IDC_EDIT1, m_Caption);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CDlgDemo, CDialog)//{{AFX_MSG_MAP(CDlgDemo)// NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////// //////////// CDlgDemo message handlers6.在MdiDemoView.cpp中输入以下内容:// MdiDemoView.cpp : implementation of the CMdiDemoView class//#include "stdafx.h"#include "MdiDemo.h"#include "MdiDemoDoc.h"#include "MdiDemoView.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////// //////////// CMdiDemoViewIMPLEMENT_DYNCREATE(CMdiDemoView, CView)BEGIN_MESSAGE_MAP(CMdiDemoView, CView)//{{AFX_MSG_MAP(CMdiDemoView)// NOTE - the ClassWizard will add and remove mapping macros here.// DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG_MAP// Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrintPreview)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////// //////////// CMdiDemoView construction/destructionCMdiDemoView::CMdiDemoView(){// TODO: add construction code here}CMdiDemoView::~CMdiDemoView(){}BOOL CMdiDemoView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT csreturn CView::PreCreateWindow(cs);}/////////////////////////////////////////////////////////////////// //////////// CMdiDemoView drawingvoid CMdiDemoView::OnDraw(CDC* pDC){CMdiDemoDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCRect crect;GetClientRect(&crect);CSize sizeClient=crect.Size();CString str=pDoc->strCaption;CSize sizeTextExtent=pDC->GetTextExtent(str);pDC->TextOut((sizeClient.cx-sizeTextExtent.cx)/2,(sizeClient.cy-sizeTextExtent.cy)/2,str);}/////////////////////////////////////////////////////////////////// //////////// CMdiDemoView printingBOOL CMdiDemoView::OnPreparePrinting(CPrintInfo* pInfo) {// default preparationreturn DoPreparePrinting(pInfo);}void CMdiDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){// TODO: add extra initialization before printing}void CMdiDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){// TODO: add cleanup after printing}/////////////////////////////////////////////////////////////////// //////////// CMdiDemoView diagnostics#ifdef _DEBUGvoid CMdiDemoView::AssertValid() const{CView::AssertValid();}void CMdiDemoView::Dump(CDumpContext& dc) const{CView::Dump(dc);}CMdiDemoDoc* CMdiDemoView::GetDocument() // non-debug version is inline{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMdiD emoDoc)));return (CMdiDemoDoc*)m_pDocument;}#endif //_DEBUG/////////////////////////////////////////////////////////////////// //////////// CMdiDemoView message handlers6。
VC++6.0主要工作窗口
VC++6.0主要工作窗口1) Workspace窗口Workspace窗口显示了当前工作区中各个工程的类、资源和文件信息,当新建或打开一个工作区后,Workspace窗口通常就会出现三个树视图:ClassView(类视图)、ResourceView(资源视图)和FileView(文件视图),如果在VC6.0企业版中打开了数据库工程,还会出现第四个视图DataView(数据视图)。
如同前面所述,在Workspace 窗口的各个视图内单击鼠标右键可以得到很多有用的关联菜单。
ClassView显示当前工作区中所有工程定义的C++类、全局函数和全局变量,展开每一个类后,可以看到该类的所有成员函数和成员变量,如果双击类的名字,VC6.0会自动打开定义这个类的文件,并把文档窗口定位到该类的定义处,如果双击类的成员或者全局函数及变量,文档窗口则会定位到相应函数或变量的定义处。
ResourceView显示每个工程中定义的各种资源,包括快捷键、位图、对话框、图标、菜单、字符串资源、工具栏和版本信息,如果双击一个资源项目,VC6.0就会进入资源编辑状态,打开相应的资源,并根据资源的类型自动显示出Graphics、Color、Dialog、Controls 等停靠式窗口。
FileView显示了隶属于每个工程的所有文件。
除了C/C++源文件、头文件和资源文件外,我们还可以向工程中添加其它类型的文件,例如Readme.txt等,这些文件对工程的编译连接不是必需的,但将来制作安装程序时会被一起打包。
同样,在FileView中双击源程序等文本文件时,VC6.0会自动为该文件打开一个文档窗口,双击资源文件时,VC6.0也会自动打开其中包含的资源。
在FileView中对着一个工程单击鼠标右键后,关联菜单中有一个“Clean”命令,在此特地要解释一下它的功能:VC6.0在建立(Build)一个工程时,会自动生成很多中间文件,例如预编译头文件、程序数据库文件等,这些中间文件加起来的大小往往有数兆,很多人在开发一个软件期间会使用办公室或家里的数台机器,如果不把这些中间文件删除,在多台机器之间使用软盘拷贝工程就很麻烦。
Visual C++操作指南
Visual C++6.0操作指南Visual C++6.0强大的操作界面会令人眼花缭乱,但它同样强大的编程工具AppWizard (应用程序向导)的和Class wizard(类向导)使得编程变得非常简单,可视化(Visual)真正体现了面向对象的特征,很多人称之为点击编程,它使程序员的主要精力不是放在美化界面的设计上,而是致力于源代码本身。
这里介绍如何编写——个简单的应用程序,并介绍怎样在对话框窗口中增加一个命令按钮控制。
一、生成一个Hello应用程序生成一个只弹出一个窗口,但无任何实际应用的Hello应用程序。
操作步骤如下:1)进入Visual C++6.0的工作台,如图1所示。
图1 Visual C++6.0的工作界面2)从顶部“File”菜单中选“New”选项,出现一对话框,该窗口中有四个标签:File、Project、Workspace、Other Docments。
3)选择Project 标签,在该页左边的编辑框中选择MFC AppWizard(exe)项,即要用生成一个可执行文件。
4)在Project Name编辑框中输入要创建的工程文件的名字,在此命名为“Hello”。
5)在Location编辑框中选择存放该工程文件的路径和位置。
6)由于这是第一个工程文件,必须创建一个新的工作区,故“Create New Workspace ”选项必须选中。
7)在Platforms编辑框中选择win32。
表示我们使用的Visual C++ 6.0是在32位操作系统下运行的。
8)确定工程文件的类型、名称和路径选项后按OK按钮,就可以开始创建该工程文件了。
见图2所示。
图2 New 对话框下面将在Visual C++6.0 MFC APP Wizard的可视化指导下,根据自已的设计来生成应用程序的工程文件和应用程序的框架文件。
V isual C++6.0显示出—个MFC App Wizard-Step1的窗口,如图3所示。
VC 6.0主要工作窗口
VC++6.0主要工作窗口1) Workspace窗口Workspace窗口显示了当前工作区中各个工程的类、资源和文件信息,当新建或打开一个工作区后,Workspace窗口通常就会出现三个树视图:ClassView(类视图)、ResourceView(资源视图)和FileView(文件视图),如果在VC6.0企业版中打开了数据库工程,还会出现第四个视图DataView(数据视图)。
如同前面所述,在Workspace窗口的各个视图内单击鼠标右键可以得到很多有用的关联菜单。
ClassView显示当前工作区中所有工程定义的C++类、全局函数和全局变量,展开每一个类后,可以看到该类的所有成员函数和成员变量,如果双击类的名字,VC6.0会自动打开定义这个类的文件,并把文档窗口定位到该类的定义处,如果双击类的成员或者全局函数及变量,文档窗口则会定位到相应函数或变量的定义处。
ResourceView显示每个工程中定义的各种资源,包括快捷键、位图、对话框、图标、菜单、字符串资源、工具栏和版本信息,如果双击一个资源项目,VC6.0就会进入资源编辑状态,打开相应的资源,并根据资源的类型自动显示出Graphics、Color、Dialog、Controls等停靠式窗口。
FileView 显示了隶属于每个工程的所有文件。
除了C/C++源文件、头文件和资源文件外,我们还可以向工程中添加其它类型的文件,例如Readme.txt等,这些文件对工程的编译连接不是必需的,但将来制作安装程序时会被一起打包。
同样,在FileView中双击源程序等文本文件时,VC6.0会自动为该文件打开一个文档窗口,双击资源文件时,VC6.0也会自动打开其中包含的资源。
在FileView中对着一个工程单击鼠标右键后,关联菜单中有一个“Clean”命令,在此特地要解释一下它的功能:VC6.0在建立(Build)一个工程时,会自动生成很多中间文件,例如预编译头文件、程序数据库文件等,这些中间文件加起来的大小往往有数兆,很多人在开发一个软件期间会使用办公室或家里的数台机器,如果不把这些中间文件删除,在多台机器之间使用软盘拷贝工程就很麻烦。
VC6.0的常用菜单命令项
VC6.0的常用菜单命令项(1)File菜单New:打开“new”对话框,以便创建新的文件、工程或工作区。
Close Workspace:关闭与工作区相关的所有窗口。
Exit:退出VC6环境,将提示保存窗口内容等。
(2)Edit菜单Cut:快捷键Ctrl+X。
将选定内容复制到剪贴板,然后再从当前活动窗口中删除所选内容。
与“Paste”联合使用可以移动选定的内容。
Copy:快捷键Ctrl+C。
将选定内容复制到剪贴板,但不从当前活动窗口中删除所选内容。
与“Paste”联合使用可以复制选定的内容。
Paste:快捷键Ctrl+V。
将剪贴板中的内容插入(粘贴)到当前鼠标指针所在的位置。
注意,必须先使用Cut或Copy使剪贴板中具有准备粘贴的内容。
Find:快捷键Ctrl+F。
在当前文件中查找指定的字符串。
顺便指出,可按快捷键F3寻找下一个匹配的字符串。
Find in Files:在指定的多个文件中查找指定的字符串。
Replace:快捷键Ctrl+H。
替换指定的字符串(用某一个串替换另一个串)。
Go To:快捷键Ctrl+G。
将光标移到指定行上。
Breakpoints:快捷键Alt+F9。
弹出对话框,用于设置、删除或查看程序中的所有断点。
断点将告诉调试器应该在何时何地暂停程序的执行,以便查看当时的变量取值等现场情况。
(3)View菜单Workspace:如果工作区窗口没显示出来,选择执行该项后将显示出工作区窗口。
Output:如果输出窗口没显示出来,选择执行该项后将显示出输出窗口。
输出窗口中将随时显示有关的提示信息或出错警告信息等。
(4)Project菜单Add To Project:选择该项将弹出子菜单,用于添加文件或数据链接等到工程之中去。
例如子菜单中的New选项可用于添加“C++ Source File”或“C/C++ Header File”;而子菜单中的Files选项则用于插入已有的文件到工程中。
Visualc++6.0的快捷键和使用说明
Visualc++6.0的快捷键和使用说明F1:帮助Ctrl+O :OpenCtrl+P :PrintCtrl+N :NewCtrl+Shift+F2 :清除所有书签F2 :上一个书签Shift+F2 :上一个书签Alt+F2 :编辑书签Ctrl+F2 :添加/删除一个书签F12 :Goto definitionShift+F12 :Goto referenceCtrl+'Num+' :Displays the next symbol definition or referenceCtrl+'Num-' :Displays the previous symbol definition or referenceCtrl+J/K :寻找上一个/下一个预编译条件Ctrl+Shift+J/K :寻找上一个/下一个预编译条件并将这一块选定Ctrl+End :文档尾Ctrl+Shift+End :选定从当前位置到文档尾Ctrl+Home :文档头Ctrl+Shift+Home :选定从当前位置到文档头Ctrl+B/Alt+F9 :编辑断点Alt+F3/Ctrl+F :查找F3 :查找下一个Shift+F3 :查找上一个Ctrl+]/Ctrl+E :寻找下一半括弧Ctrl+Shift+] :寻找下一半括弧并选定括弧之间的部分(包括括弧)Ctrl+Shift+E :寻找下一半括弧并选定括弧之间的部分(包括括弧)F4 :寻找下一个错误/警告位置Shift+F4 :寻找上一个错误/警告位置Shift+Home :选定从当前位置到行首Shift+End :选定从当前位置到行尾Ctrl+L :剪切当前行Ctrl+Shift+L :删除当前行Alt+Shift+T :交换当前行和上一行Ctrl+Alt+T :Brings up the completion list boxShift+PageDown :选定从当前位置到下一页当前位置Shift+PageUp :选定从当前位置到上一页当前位置Ctrl+Shift+Space:显示函数参数的T ooltipCtrl+Z/Alt+Backspace :UndoCtrl+Shift+Z/Ctrl+Y :RedoF8 :当前位置变成选定区域的头/尾(再移动光标或者点鼠标就会选定)Ctrl+Shift+F8 :当前位置变成矩形选定区域的头/尾(再移动光标或者点鼠标就会选定)Alt+F8 :自动格式重排Ctrl+G :GotoCtlr+X/Shift+Del:CutCtrl+C/Ctrl+Ins :CopyCtrl+V/Shift+Ins:PasteCtrl+U :将选定区域转换成小写Ctrl+Shift+U :将选定区域转换成大写Ctrl+F8 :当前行变成选定区域的头/尾(再移动上下光标或者点鼠标就会选定多行)Ctrl+Shift+L :删除从当前位置到行尾Ctrl+Shift+8 :将所有Tab变成`或者还原Ctrl+T :显示变量类型Ctrl+↑ :向上滚屏Ctrl+↓ :向下滚屏Ctrl+Del :删除当前单词的后半截(以光标为分割)Ctrl+Backspace :删除当前单词的前半截(以光标为分割)Ctrl+← :移到前一个单词Ctrl+→ :移到后一个单词Ctrl+Shift+← :选定当前位置到前一个单词Ctrl+Shift+→ :选定当前位置到后一个单词Ctrl+Shift+T :将本单词和上一个单词互换Alt+0 :Workspace WindowAlt+2 :Output WindowAlt+3 :Watch WindowAlt+4 :Variables WindowAlt+5 :Registers WindowAlt+6 :Memory WindowAlt+7 :CallStack WindowAlt+8 :Disassembly WindowCtrl+W :ClassWizardAlt+Enter :属性Alt+F7 :Project SettingsF7 :BuildCtrl+F7 :CompileCtrl+F5 :RunCtrl+Break :Stops the buildF5 :GoCtrl+F10 :Run to cursorF11 :step intoAlt+F10 :Apply codes changesCtrl+F9 :Enable/Disable a breakpointAlt+F11 :将Memory Window 切换到下一种显示模式Alt+Shift+F11 :将Memory Window 切换到上一种显示模式Ctrl+Shift+F9 :去掉所有断点Ctrl+Shift+F5 :Restarts the programCtrl+Shift+F10 :将当前行设为下一条指令执行的行Alt+Num* :滚动到当前指令Shift+F11 :跳出当前函数F9 :断点F10 :step overShift+F5 :停止DebuggingCtrl+F11 :Switches between the source view and the disassembly view for this instructionAlt+F12 :Queries on the selected object or current context Alt+F6 :Toggles the docking feature for the window on/off Shift+Esc :隐藏窗口Ctrl+Shift+G :?Ctrl+* :打开string tableCtrl+Space :?Ctrl+F3 :向下查找下一个Ctrl+Shift+F3 :查找上一个Ctrl+D :查找Ctrl+I :向下查找下一个Ctrl+Shift+I :查找上一个F6 :?Activates the next paneShift+F6 :?Activates the previous paneCtrl+M :?Detects duplicate mnemonics in the resourceAlt +O : 头文件与cpp文件的交互显示。
VC中全屏窗口的实现
VC中全屏窗口的实现实现全屏主要就是两个工作:<1>让框架窗口的客户区占满整个屏幕,<2> 退出全屏后恢复窗口之前的大小和位置,以实现全屏模式和非全屏模式的切换我是这样进行实现的:<1>在主窗口内加入三个成员变量:BOOL m_bFullScreen ; //代表当前窗口的状态是否为全屏的标志CRect * m_pFullScreenRect ; //保存在全屏状态下时的窗口的窗口矩形WINDOWPLACEMENT m_OldWndPlacement ; //保存进入全屏前的窗口放置信息(大小,位置等)<2>定义进人全屏操作的函数和退出全屏操作的函数 (当然,也可以就定义一个函数)void CMainFrame::OnFullscreen(){if(m_bFullScreen){EndFullScreen();return;}//获取并保存当前窗口的位置,以便退出全屏时进行恢复GetWindowPlacement(&m_OldWndPlacement);// 获取屏幕的大小int nFullHeight = GetSystemMetrics(SM_CYSCREEN);int nFullWidth = GetSystemMetrics(SM_CXSCREEN);//创建一个新的客户区区域,使它正好覆盖全屏CRect clientRect;clientRect.left = 0;clientRect.right = nFullWidth;clientRect.top = 0;clientRect.bottom = nFullHeight;//根据要使用的客户区区域信息计算出此客户区需要的窗口的区域信息并保存在参数内CalcWindowRect(&clientRect);//把窗口全屏时它的区域信息保存到成员变量中去m_pFullScreenRect->CopyRect(&clientRect);/*//调用MoveWindow操作将窗口移动到全屏对应的正确区域. 注意: 因为MoveWindow要发出 WM_GETMINMAXINFO //消息,通过对此消息的处理可以确认和更正窗口区域是否在最大和最小之间。
使用VC++实现应用程序的全屏显示
使用VC++实现应用程序的全屏显示使用VC++实现应用程序的全屏显示91550部队指控中心池晓春赵鹤群全屏显示是很多应用软件都具备的功能,它能充分利用显示屏幕显示更多用户关心的信息。
例如,在用使用Office2000等专业办公软件,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态。
在VC++6.0中我们用AppWizard按默认方式生成单文档界面的应用程序框架。
下面将在此基础上介绍点击菜单项“View\Full Screen”实现全屏显示的方法,然后介绍按下“Esc”键后退出全屏显示状态的方法。
1)在CMainFrame类中,增加如下三个成员变量。
class CMainFrame : public CFrameWnd{private: //自己添加的三个成员变量WINDOWPLACEMENT m_OldWndPlacement; //用来保存原窗口位置BOOL m_bFullScreen; //全屏显示标志CRect m_FullScreenRect; //表示全屏显示时的窗口位置protected:CMainFrame();DECLARE_DYNCREATE(CMainFrame)}2)在资源编辑器中编辑菜单IDR_MAINFRAME。
在“View”菜单栏下添加菜单项“Full Screen”。
在它的属性框中,ID设置为ID_FULL_SCREEN,Caption为“Full Screen”。
可以在工具栏中添加新的工具图标,并使之与菜单项“Full Screen”相关联,即将其ID值也设置为ID_FULL_SCREEN。
3)设计全屏显示处理函数在CMainFrame类增加上述菜单项ID_FULL_SCREEN消息的响应函数。
代码如下:void CMainFrame::OnFullScreen(){GetWindowPlacement(&m_OldWndPlacement);CRect WindowRect;GetWindowRect(&WindowRect);CRect ClientRect;RepositionBars(0, 0xFFFF, AFX_IDW_PANE_FIRST,reposQuery, &ClientRect);ClientToScreen(&ClientRect);//获取屏幕的分辨率int nFullWidth=GetSystemMetrics(SM_CXSCREEN);int nFullHeight=GetSystemMetrics(SM_CYSCREEN);//将除控制条外的客户区显示到(0,0)到(nFullWidth, nFullHeight)区域, //将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口//和除控制条之外的客户区位置间的差值, 就得到全屏显示的窗口位置m_FullScreenRect.left=WindowRect.left-ClientRect.left;m_FullScreenRect.top=WindowRect.top-ClientRect.top;m_FullScreenRect.right=WindowRect.right-ClientRect.right +nFullWidth;m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight;m_bFullScreen=TRUE; //设置全屏显示标志为 TRUE//进入全屏显示状态WINDOWPLACEMENT wndpl;wndpl.length=sizeof(WINDOWPLACEMENT);wndpl.flags=0;wndpl.showCmd=SW_SHOWNORMAL;wndpl.rcNormalPosition=m_FullScreenRect;SetWindowPlacement(&wndpl);}4)重载CMainFrame类的OnGetMinMaxInfo函数,在全屏显示时提供全屏显示的位置信息。
在VC++6.0中实现全屏显示
在VC++6.0中实现全屏显示
叶子
【期刊名称】《软件》
【年(卷),期】2003(000)006
【摘要】全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时.选择菜单”View\FullScreen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态。
【总页数】2页(P47-48)
【作者】叶子
【作者单位】无
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.VC中图像全屏显示及打印算法的实现 [J], 戢小亮
2.C++Builder中应用程序全屏显示实现的编程技术 [J], 陈华光;李珍辉;周铁山
3.在Visual C++中实现MDI应用程序的活动视图全屏显示 [J], 吴恒亮
4.在Visual C++6.0应用开发中实现全屏显示 [J], 孙智民;李素有;段明耀
5.用VC++
6.0制作自己的软件封面及实现全屏显示 [J], 张戟;钱敬荣
因版权原因,仅展示原文概要,查看原文内容请购买。
VC++6.0使用说明(快捷键)
V C++6.0使用说明(快捷键)F1 显示帮助,如果光标停在代码的某个字符上,显示MSDN中相应的帮助内容F2 书签功能: C trl+F2 –在某行设置一个书签(再按一次次是取消)F2 –跳到下一个书签位置Shift+F2 –跳到上一个书签位置C trl+Shift+F2 –删除所有书签F3 查找: C trl+F3 –在文件中查找,如果当前光标在一个字符串上,那么自动查找此字符串.相似的有C trl+FF3 –查找文件中下一个串Shift+F3 –查找文件中上一个串F4 - 如果是编译后或者Find in Files后,可以逐条定位.C trl+F4 –关闭文件Alt+F4 –关闭V C(跟WINDOWS定义的一样)F5编译并执行F5 –编译并通过V C执行C trl+F5 –不经过V C,直接执行编译后的exeShift+F5 –F5运行后,直接从V C中停止程序(可以模拟当机情况)C trl+Shift+F5 –重新开始运行F6切换窗口SplitWindow后,可以转换光标所在的窗口F7编译F7 编译工程C trl+F7 编译当前文件Alt+F7 工程设置对话框F8选择的粘滞键其实更常用的是按住Shift+方向键Alt+F8 选中的代码书写格式对齐F9设置断点C trl+F9删除所有断点Alt+F9 显示编辑断点的对话框C trl+F9断点无效F10单步执行(Debug时)C trl+F10执行到光标所在行(试试看Shift+F10什么效果)F11跟踪时进入函数内部Shift+F11跳到上一层调用栈F12跳到函数定义初(需要带Browse Info选项编译,建议不选,生成文件很大)编辑常用C trl+W 显示C lassWizard,边界面程序用的比较多C trl+Z/C trl+Y Undo/RedoC trl+U 字母转化为小写(有的V C没有设置)C trl+Shift+U 字母转化为大写(有的V C没有设置)C trl+S 保存(强烈建议编码时经常按两下,省得掉电死机时后悔,呵呵,该键在多数编辑软件都适用)C trl+D 查找(嗯,如果有SOFTI C E,那么就是呼叫它了)C trl+F 正宗的查找快捷键C trl+G 跳到文件中第n行C trl+Shift+G 光标在一个文件名上,直接跳到指定文件C trl+H 替换C trl+J,K #ifdef…#endif查找配对C trl+L 剪切一行C trl+} 匹配括号(),{}调试常用Shift+F9 Qui c kWat c h,并显示关标所在处的变量值Alt+3 Wat c h 查看窗口Alt+4 Variables 监视变量(常用)Alt+5 显示寄存器Alt+6显示内存(常用)Alt+7 显示堆栈情况(当机了多看看)Alt+8 显示汇编码还有一些常用的C trl+TAB 切换打开的文件视图,(如果按住C trl,顺序向后切换)C trl+Shift+TAB切换打开的文件视图,(如果按住C trl,顺序向前切换)TAB 选中后,整体后移一个制表符,Shift+TAB 选中后,整体前移一个制表符,Alt+0将焦点移到工作区(ES C回编辑区)Alt+2 将焦点移到输出区(ES C回编辑区)C trl+PgUp 逆序切换工作区视图C trl+PgDn 顺序切换工作区视图另外,V C没有设置打开,关闭工作区,和打开关闭输出区的快捷键,如果觉得不方便, 可以自己注册(我设置的是C trl+,和C trl+/).注册在Tools => C ustomize => KeyBoard。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在VC6.0中使用VFW并响应鼠标双击实现全屏显示
作者:zqckzqck 标签:MFC VFW CALLBACK 时间:2013-01-05 16:22
目的:通过USB视频源获取视频,在VC6.0中的MFC环境下,使用系统自带的VFW 实现视频的显示,并实现鼠标双击视频最大化显示。
工具:USB摄像头VC6.0 VFW
方法:通过使用SetWindowLong给创建的窗口添加过程函数,解惑鼠标双击消息,然后通过自定义的消息,实现过程函数与主窗口的通信,实现全屏显示。
下面我通过几个步骤介绍我的实现过程。
(1)实现视屏的显示。
利用VFW的自带API函数实现视频的显示。
这里就不做赘述。
网上有多资料,我把代码贴出来。
BOOL CVideoTestDlg::OnInitDialog()
{
// TODO: Add extra initialization here
g_hDlg = m_hWnd;
m_hWndVideo = capCreateCaptureWindow(NULL,WS_POPUP,0,0,640,480,m_hWnd,0);
m_flag = capDriverConnect(m_hWndV ideo,0);//链接驱动程序
if(!m_flag)
MessageBox("请确认USB视频源已连接!");
while(!m_flag)
{
m_flag = capDriverConnect(m_hWndV ideo,0);
}
if(m_flag)
{
::SetParent(m_hWndV ideo,*this);
::SetWindowLong(m_hWndVideo,GWL_STYLE,WS_CHILD);
//设置窗口过程函数响应鼠标双击消息
pOldWndProc=(WNDPROC)SetWindowLong(m_hWndVideo,GWL_WNDPROC,(LONG)New WndProc);
//视频居中显示使用
GetClientRect(wndRC);
x_original = wndRC.Width()/2;
y_original = wndRC.Height()/2;
::SetWindowPos(m_hWndVideo,NULL,x_original-320,y_original-240,640,480,SWP_NOZO RDER);
::ShowWindow(m_hWndVideo,SW_SHOW);
capPreviewRate(m_hWndVideo,20);
capPreview(m_hWndV ideo,TRUE);
}
return TRUE; // return TRUE unless you set the focus to a control
}
头文件如下:
HWND m_hWndVideo;//视频显示窗口
BOOL m_flag;
BOOL m_flagDlg;//是否最大化标志
int x_original,y_original; //客户区中心位置
CRect wndRC;
(2)窗口过程函数在调用前定义(在孙鑫的第7讲中有详细的介绍和源码可以参考),过程函数的定义代码如下:
WNDPROC pOldWndProc;
HWND g_hDlg;//当前运行窗口句柄
LRESULT CALLBACK NewWndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_LBUTTONDBLCLK:
::PostMessage(g_hDlg,WM_MYDBCLICK,0,0);
break;
default :
break;
}
return pOldWndProc(hWnd,uMsg,wParam,lParam);
}
主要是截获鼠标的左键双击消息,并向主窗口发送自定义的WM_MYDBCLICK消息。
注意:在发送消息时,需要指定窗口句柄,我的实现方式是定义了一个全局的HWND 变量g_hDlg;在OnInitialDialog中把主窗口句柄赋值过来,具体如上所示。
(3)自定义消息WM_MYDBCLICK。
具体的自定义过程就不说了,消息的实现部分如下:
LRESULT CVideoTestDlg::OnMyLBtnDBClick(WPARAM wParam,LPARAM lParam)
{
if(!m_flagDlg)
{
ShowWindow(SW_MAXIMIZE);
//隐藏对话框的标题栏
ModifyStyle(WS_CAPTION,0,SWP_FRAMECHANGED);
m_flagDlg = TRUE;
Invalidate();
}
else
{
ShowWindow(SW_NORMAL);
//显示
ModifyStyle(0,WS_CAPTION,SWP_FRAMECHANGED);
m_flagDlg = FALSE;
Invalidate();
}
return 0L;
}
通过以上的就可以实现了。
接下来的部分就是实现背景图的绘制和文字显示。
细节部分有:从资源导入位图,文本的背景色透明,文本宽度获取并居中。
(1)参考CSDN邓的方法,在BOOL CVideoTestDlg::OnEraseBkgnd(CDC* pDC){}实现了背景图的加载和文本的输出。
BOOL CVideoTestDlg::OnEraseBkgnd(CDC* pDC)
{
GetClientRect(wndRC);
x_original = wndRC.Width()/2;
y_original = wndRC.Height()/2;
::SetWindowPos(m_hWndVideo,NULL,x_original-320,y_original-240,640,480,SWP_NOZO RDER);
::ShowWindow(m_hWndVideo,SW_SHOW);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bitmapInfo;
bitmap.GetBitmap(&bitmapInfo);
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&bitmap);
CRect rect;
GetWindowRect(rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmapInfo.bmWidth,bitmapInf o.bmHeight,SRCCOPY);
//字体及输出位置指定
CFont font;
font.CreatePointFont(300,"华文行楷",NULL);//创建字体
CFont *pOldFont=pDC->SelectObject(&font);
CSize sz = pDC->GetTextExtent("闪亮之星现场");//获取字串的宽高
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkMode(TRANSPARENT);//设置透明背景
pDC->TextOut(x_original-sz.cx/2,y_original-250-sz.cy,"闪亮之星现场");
pDC->SelectObject(pOldFont);
ReleaseDC(&dcMem);
return TRUE;
//return CDialog::OnEraseBkgnd(pDC);
}
源代码地址:/detail/zqckzqck/4961963
博文地址:/zqckzqck/article/details/8469177。