vc使用教程(win7系统安装vc6.0的方法【图文教程】)

本文目录
- win7系统安装vc6.0的方法【图文教程】
- vc 如何操作 excel2003(注意一定是2003) 编程
- vc++6.0怎么用
- 使用VisualC++6.0编写简单C语言程序入门教程
- vc6.0绿色完整版,求大神帮忙需要完整安装教程,和链接
- vc++ mfc 剪贴板操作教程
- 请问如何使用VC++获得从图像采集卡(连着摄像头)得来的图像
- c语言菜鸟 提问
win7系统安装vc6.0的方法【图文教程】
许多用户询问说win7系统怎么安装vc6.0?vc6.0是一个功能强大的可视化软件开发工具,一直被广泛地用于大大小小的项目开发。有些用户不知道如何在win7系统中安装vc6.0?网上关于安装vc6.0的教程比较少,那么win7系统怎么安装vc6.0呢?为此,以下教程一起图文分享win7系统安装vc6.0的方法。
解决方法1:
1、下载完成后,文件是一个iso的压缩文件,最好不要用DaemonTools等虚拟光驱软件打开。直接用winrar解压即可;
2、解压后,打开文件夹,运行setup.exe安装程序。在弹出的兼容性提示对话框中选择“是”;
3、在安装向导中选择“Next”;
4、在软件许可对话框中选择“accept”。然后继续“next”;
5、在productsID(产品id)中全部输入1即可,companysname随便填,最好用英文名。然后next。上面的自己填写,我就不截图了,如果想购买正版产品,请在微软官方网站购买;
6、下面就是选择安装目录了,如果不想麻烦,就默认安装目录,不要修改,直接next。但考虑到很多人不想把vc6.0软件安装到C盘,本人操作演示安装到D:\软件目录下!点击Browse选择你自己想要的安装目录,然后next继续;
7、在接下来的安装对话框中选择“Continue”;
8、这一步及其重要,直接关系到vc6.0能否在你的电脑中正常运行!!选择“Custom”选项,即自定义安装;
9、首先选择“Tools”选项,然后再右面选择“ChangeOption...”;
10、把“OLE/ComObjectViewer”选项勾掉!然后点击“OK”。回到原安装界面,点击“Continue”;
11、在弹出的设置环境变量对话框中把“RegisterEnvironmentVariables”勾上,点击OK。安装程序启动;
12、安装完成后,提示安装成功。然后可能弹出安装msdn窗口,因为msdn没有集成在安装程序中,要独立安装,所以点击Exit退出即可;
13、截一张我的win7系统图片,启动vc6.0,写一个hello程序测试一下看看效果,正常显示,没有错误和警告;
14、再编译一个自己写的复杂一点的程序,关于局域网测试服务端的一个程序,编译后无错误无警告,并且正常可以使用开源皮肤文件,程序完美运行。
解决方法2:
1、由于注意事项太多,我分开一栏来写。首先就是文件目录问题,安装在C盘以外的vc6.0才会出现这种问题。比如在代码正确及头文件也已包含的情况下helloworld程序也会报错。请查看包含目录文件是否有错。
若不正确请安装下面修改。
executatblefiles:
C:\ProgramFiles\MicrosoftVisualStudio\Common\MSDev98\Bin
C:\ProgramFiles\MicrosoftVisualStudio\VC98\BIN
C:\ProgramFiles\MicrosoftVisualStudio\Common\TOOLS
C:\ProgramFiles\MicrosoftVisualStudio\Common\TOOLS\WINNT
includefiles:
C:\ProgramFiles\MicrosoftVisualStudio\VC98\INCLUDE
C:\ProgramFiles\MicrosoftVisualStudio\VC98\MFC\INCLUDE
C:\ProgramFiles\MicrosoftVisualStudio\VC98\ATL\INCLUDE
libraryfiles:
C:\ProgramFiles\MicrosoftVisualStudio\VC98\LIB
C:\ProgramFiles\MicrosoftVisualStudio\VC98\MFC\LIB
sourcefiles:
C:\ProgramFiles\MicrosoftVisualStudio\VC98\MFC\SRC
C:\ProgramFiles\MicrosoftVisualStudio\VC98\MFC\INCLUDE
C:\ProgramFiles\MicrosoftVisualStudio\VC98\ATL\INCLUDE
C:\ProgramFiles\MicrosoftVisualStudio\VC98\CRT\SRC
如果你装在其他盘里,则仿照其路径变通就行。关键是microsoftvisualstudio\后面的东西要相同!!
2、若执行时提示缺失相关dll文件,如“SHSQL.DLL”或“NMSQL.DLL”,那可能是你原来已经安装过vc6的其他版本,而后没有卸载干净导致的,解决办法是网上下载相关dll文件,拷贝到系统目录下即可;
3、若运行过程中提示兼容性对话框,则选择“不在显示此消息”即可。
4、若出现:Errorspawningcl.exe,请看注意事项1,修改方法一致。
上述就是win7系统安装vc6.0的方法,有需要的用户直接参考教程进行设置即可,希望此教程对大家有所帮助!
vc 如何操作 excel2003(注意一定是2003) 编程
1.制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛的当然是Excel表格,本文简略介绍在VC++6.0中如何使用Excel2003的库函数并对其进行编程。先创建一个对话框工程,命名为VCExcel。在对话框中添加一个按钮,控件ID为2.ID_RUNEXCEL(是不是很搞笑哇,不过没关系,它照样能实现强大的功能)。
再在该按钮上添加消息BN_CLICKED,其消息映射函数为OnRunexcel(),下面工作就是要完成这个OnRunexcel()函数。在这里我们通过一个实例来说明VC是如何调用Excel2003的接口编程的。
3.要编程输出一个如下表格。
格式如下:
1)表头的字体为宋体,加粗,颜色为白色,底色为深蓝,垂直水平居中对齐;
2)表中正文内容字体为宋体,颜色为深蓝,底色为灰色,垂直水平居中对齐;
3)全部边框,文本自动换行。
在BOOL CVCExcelApp::InitInstance()之中,int nResponse = dlg.DoModal()语句之后加入如下代码:
if(CoInitialize(NULL)==0)//初始化COM库
{
AfxMessageBox("初始化COM失败!");
exit(1);
}
在return FALSE;语句之前加入:::CoUninitialize();//释放COM库。
4.为了能调用Excel的接口我们打开MFC ClassWizard-》Automation-》Add Class-》From a type library,选择/EXCEL.exe,然后把所有的类都添加进去,头文件为excel.h,源文件为excel.cpp。当然,你也可以只把一些比较常用的类如_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range加进去,因为网上流传的绝大部分教程都只添加这几个类,这完全根据个人的需要。至少还要用到Interior类(设置底色),Font类(设置字体),而且这样做又简单又方便扩展功能,不管三七二十一全部弄进去吧!但这样做会有一个问题,有可能产生类的名字冲突,例如本来你自己写了一个类叫Font,当你全部添加时又再次加入了Font类,这样就重复定义了,不过可以通过名字空间来解决这个问题。再在VCExcelDlg.cpp文件的头部添加(如果系统已经自动添加就不要重复添加了):
#include "VCExcel.h"
#include "comdef.h"
这样一来程序就可以自由调用EXCEL了,一切准备就绪。
5.下面先在CVCExcelDlg中添加如下成员变量,用来操控Excel应用程序、工作簿和单元格。
Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Application m_ExlApp;
我们利用加载Excel模板来生成要求的表格,在本工程Debug文件夹中建立一个Excel文件,命名为Template.xls。我们的OnRunexcel()代码如下(详见注释):
void CVCExcelDlg::OnRunexcel()
{
// TODO: Add your control notification handler code here
//用m_ExlApp对象创建Excel2003进程
if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
return;
}
//设置为可见
m_ExlApp.SetVisible(TRUE);
///////////////////下面得到应用程序所在的路径///////////////////
CString theAppPath,theAppName;
char Path;
GetModuleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径
theAppPath=(CString)Path;
theAppName=AfxGetApp()-》m_pszAppName;
theAppName+=".exe";
//把最后的文件名去掉
int length1,length3;
length1=theAppPath.GetLength();
length3=theAppName.GetLength();
theAppPath.Delete(length1-length3,length3);
////////////////////////////////////////////////////////////////
CString TempPath="";
TempPath=theAppPath+"Template.xls";//EXCEL模板的路径
m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面
//添加新的Sheet页面
m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
//删除第二个Sheet页面
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.Delete();
//把第一个Sheet页面的名字改变为TestSheet
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
m_ExlSheet.SetName("TestSheet");
///////合并第一行单元格A1至D1//////
//加载要合并的单元格 m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")),TRUE);
m_ExlRge.Merge(_variant_t((long)0));
////////设置表格内容////////
m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格
m_ExlRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("数学系研究生课程统计"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("课程名"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("课时"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("难度"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)4),_variant_t("教学方式"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)4),_variant_t("老师讲课"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)3),_variant_t("变态难"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)4),_variant_t("自学"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)1),_variant_t("二阶椭圆型方程与方程组"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)3),_variant_t("很难"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)4),_variant_t("讨论"));
m_ExlRge.AttachDispatch(m_ExlSheet.GetUsedRange());//加载已使用的单元格
m_ExlRge.SetWrapText(_variant_t((long)1));//设置单元格内的文本为自动换行
//设置齐方式为水平垂直居中
//水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
//垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
m_ExlRge.SetHorizontalAlignment(_variant_t((long)-4108));
m_ExlRge.SetVerticalAlignment(_variant_t((long)-4108));
///////设置整体的字体、字号及颜色//////
Font ft;
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetName(_variant_t("宋体"));//字体
ft.SetColorIndex(_variant_t((long)11));//字的颜色
ft.SetSize(_variant_t((long)12));//字号
///////////设置标题字体及颜色////////// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")));
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetBold(_variant_t((long)1));//粗体
ft.SetSize(_variant_t((long)13));
ft.SetColorIndex(_variant_t((long)2));
CellFormat cf;
cf.AttachDispatch(m_ExlRge.GetCells());
//////////////设置底色/////////////////
Interior it;
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)11));//标题底色
////表格内容的底色//// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A2"),_variant_t("D5")));
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)15));
//////////////为表格设置边框/////////////
Range UnitRge;
CString CellName;
for(int i=1;i《=4;i++)
{
for(int j=1;j《=4;j++)
{
CellName.Format("%c%d",j+64,i);//单元格的名称 UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));//加载单元格
//LineStyle=线型 Weight=线宽 ColorIndex=线的颜色(-4105为自动) UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);//设置边框
}
}
//释放对象(相当重要!)
m_ExlRge.ReleaseDispatch();
m_ExlSheet.ReleaseDispatch();
m_ExlSheets.ReleaseDispatch();
m_ExlBook.ReleaseDispatch();
m_ExlBooks.ReleaseDispatch();
//m_ExlApp一定要释放,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
m_ExlApp.ReleaseDispatch();
//退出程序 m_ExlApp.Quit();
}
vc++6.0怎么用
是微软推出的编程软件,当然可以使用c c++以及vc++
不过哥们分类错了当然没人回答
这个可以用来做数学题但十分麻烦而且前提是你完全理解数学题并且会编程语言
如家已经有vs2013界面灰常好看(不过没用)
sorry我忘了回答
启动 Visual C++ 6.0
安装完毕之后从开始i菜单中可以启动 VC6 ,启动之后的界面如图,左侧停靠窗口为工程资源管理器,用于从不同角度对工程资源进行查看和快速定位,下侧为信息输出窗口、调试信息、查找信息等都会从该窗口输出,主要显示区显示程序代码或者资源。
2
建立新工程
从“File”菜单选择“New”,切换到“Project”标签,根据需要选择工程类型,初学者可以选择简单的 “Win32 Console Application”来学习基本 C++ 语法,在右侧输入工程的名称及存储位置,点击“OK”,系统会启用向导来给用户生成程序框架以便快速进入开发,作为初学者,选择 “An Empty Project”手动来添加工程文件,点击“Finish”结束向导,界面如图所示。
3
为工程添加代码文件
继续选择“File”菜单下的“New”,本次切换到“Files”标签,根据需要选择要添加到工程里的文件类型,选择其中的 "C++ Source File",右侧输入文件名称及对应的扩展名 .cpp 。
当代码文件添加完毕后,可以从左侧工程资源管理器的“FileView”文件视图查看当前的各类资源文件,“ClassView”则从类和函数的角度查看代码并可以通过双击快速定位。
如果硬盘上已有代码文件,则可以通过 “Project”菜单项来将现有资源文件添加到当前工程。在“FileView”的对应文件上按“Del”键,则可以将文件从工程中移除(注:仅从工程中移除,并非从硬盘上删除文件)。
4
书写程序代码
双击“FileView”中的代码文件可以直接进入代码状态,根据需要输入代码。如果代码书写较乱,可以使用 “Edit”菜单“Advanced”子菜单中的“Format Selection”进行格式化,快捷键 Alt+F8 。
如果对区域字体不满意,可以在“Tools”菜单“Options”对话框中选择“Format”标签对源代码窗口字体进行定制。
5
编译并运行程序
代码书写完毕,可以在“Build”或者“Build”工具栏上依次点击“Compile ..”“Build ..”“Excute ..”来对程序进行编译、连接和运行,并观察程序运行结果。
6
程序的错误修改
如果编译或者连接过程中出现错误,底部信息提示窗口会提示错误所在行以及错误的类型,双击即可定位到相应的代码处进行修改,尔后重新编译连接运行,重复此过程直到程序功能达到要求没有错误。
7
单步调试
如果需要单步跟踪每个语句的执行过程并观察运行结果,可以使用单步调试。
首先在你希望程序运行停止的语句上点击工具栏图标设置断点(Break Point),然后可以使用 “Go”按钮(快捷键 F5)来启动应用程序,此时程序会在运行到断点处的时候暂停,你可以使用“Debug”工具栏上的“Setp Over”(快捷键 F10)“Step Into”“Stop Debugging”来分别进行单步运行、进入函数内部单步运行和停止调试,如果你希望直接运行到下一个断点处,则再次点击“Go”即可。
单步运行时,当前代码所在函数内部的变量的值变化情况会在底部的“Auto”标签中显示,用户也可以直接把鼠标放到想要查看值的变量名上来查看当前值。
8
生成可执行文件并发布
在编码、调试程序的功能完成之后,接下来进入程序的发布过程,以 DEBUG 模式编译的程序附加了很多调试信息,而且没有经过优化,所以速度慢体积大,当程序功能完备在交给实际用户使用之前,应该以 RELEASE 模式重新编译。
点选“Build”菜单中的“Batch Build”即可选择编译模式。
Debug和Release模式编译生成的文件默认会分别放置在工程目录的 Debug和Release文件夹下,只需要将生成的 exe 文件及程序操作需要的附属文件交给用户即可,C++ 代码及工程无需交付。
***隐藏网址***
给采纳啊萌萌哒
编程最好看实体书不要看视频因为视频都是书的延生不是很详细(都是买书附送的光盘)
然后网上教程容易分散注意力总之就是这样
Java前途好c实用c++没学过
然后开发软件最好超前一点因为功能会多(坏处就是有一些代码改变的不过很少)
使用VisualC++6.0编写简单C语言程序入门教程
本教程适用于C语言初学者,使用VC++6.0编写简单的程序。VisualC++6.0作为学习C语言的编程工具在合适不过了,工具比较简洁,容易上手。下面我将一步步带领大家一步步操作,教会大家如何从零基础编写一个简单的C语言程序。
工具/原料
电脑一台
VisualC++6.0编程软件(假设您已经在电脑上装好了该软件)
方法/步骤
1、双击桌面上的VisualC++6.0快捷图标,打开编程环境,如下图所示。
2、在打开的界面中,单击“文件”菜单项。选择里面的子菜单“新建”,单击此项,得到如下图所示的选项卡:(也可以直接使用快捷键:Ctrl+N)。
3、在打开的新建选项卡中,单击“文件”,然后选中“文件”选项卡中的“C++sourcefile”一栏,在右边的“文件名”文本框中,对你要新建的C++源文件命名,这里我取名为“Demo.cpp”,具体详细操作如下图所示。
4、在上述操作的基础上,保存文件到指定的文件夹。这是我保存到桌面的Demo文件夹中,如下图所示。
5、选择路径之后,单击“确定”按钮,得到如下图说是的界面,在右边的区内,您就可以开始编写C语言代码了。
6、开始代码的。下面,我们编写一个简单的两数求和的代码,代码如下如所示。
7、编译。对程序进行编译,点击工具栏的“编译”图标(或者按下快捷键:Ctrl+F7),如下图所示。
8、组建。对程序进行链接,点击工具栏的“组建”图标(或者按下快捷键:F7),如下图所示。
9、执行。现在我们可以查看你编程的程序的结果了,点击工具栏中的“执行”图标(或者按下快捷键:Ctrl+F5),程序执行的结果如下图所示。
vc6.0绿色完整版,求大神帮忙需要完整安装教程,和链接
***隐藏网址***
试试我做的版本,一键安装:百度盘下载
vc++6.0安装使用教程:
注意:该软件为绿色版,无需安装,首先下载vc++6.0完整绿色版www.xue51.com/soft/842.html,然后运行sin.bat 文件,会自动创建一个vc6快捷键到你的桌面,以后都可以直接从桌面进入VC6。
1、打开vc++6.0完整版,界面如下,
2、按左上角菜单栏的“文件”--》“新建”,打开如下界面
3、在左边的列表中选择“Win32 Console Application”,即win32控制台工程,控制台就类似windows中的cmd窗口,刚开始编程,选择创建这个工程就可以了。在右边输入工程名称,我在这里输入“FirstProgram”,位置选择一个存放该工程的文件夹,如果不放在默认的路径下,则点击右边的那个显示为“...”的按钮,然后自定义选择路径,我选择的路径是F:\Cpp。
4、然后点击确定,在接下来出现的对话框中选择“一个空工程”,点击完成即可,在后续的出现的窗口中点击“确定”。
5、这个时候一个空工程就创建完成了,我们的源代码文件将包含在这个工程中。我们现在开始创建源代码文件,点击软件左上角的“文件”--》“新建”,然后出现刚才见到过的对话框,先选择上面标签中的“文件”,然后再选择下面列表中的“C++ Source File”,文件名输入hello.cpp,然后点击“确定”。
6、确定完后,右边的区就会自动打开空白的hello.cpp文件,左边的工作区也可以看到整个工程的组织结构
7、接下来我们写一个简单的程序,在屏幕上显示“hello world!”,最经典的程序
vc++ mfc 剪贴板操作教程
本文主要介绍了VC++/MFC中如下内容的剪贴板操作:
1、文本内容的操作
2、WMF数据的操作
3、位图的操作
4、设置使用自定义格式
5、感知剪贴板内容的改变
6、自动将数据粘贴到另一应用程序窗口
一、文本内容的操作
下面的代码示范了如何将文本内容复制到剪贴板(Unicode编码的先转化为ASCII):
CString source;
//文本内容保存在source变量中
if( OpenClipboard() )
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);
buffer = (char*)GlobalLock(clipbuffer);
strcpy(buffer, LPCSTR(source));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
下面的代码显示了如何从剪贴板上获得文本内容:
char * buffer = NULL;
//打开剪贴板
CString fromClipboard;
if ( OpenClipboard() )
{
HANDLE hData = GetClipboardData(CF_TEXT);
char * buffer = (char*)GlobalLock(hData);
fromClipboard = buffer;
GlobalUnlock(hData);
CloseClipboard();
}
二、WMF数据的操作
在剪贴板上读写图象数据是非常有用的功能,并且实现起来也很简单。下面的代码显示了如何将扩展图元文件复制到剪贴板:
if(OpenClipboard());
{
EmptyClipboard();
//创建图元文件DC
CMetaFileDC * cDC = new CMetaFileDC();
cDC-CreateEnhanced(GetDC(),NULL,NULL,"the_name");
//调用绘图例程
//关闭CMetafileDC并获得它的句柄
HENHMETAFILE handle = cDC-CloseEnhanced();
//复制到剪贴板
SetClipBoardData(CF_ENHMETAFILE,handle);
CloseClipboard();
//删除dc
delete cDC;
}
下面的代码演示了从剪贴板获得图元文件并将其绘制到client DC上:
if(OpenClipboard())
{
//获得剪贴板数据
HENMETAFILE handle = (HENMETAFILE)GetClipboardData(CF_ENHMETAFILE);
//显示
CClientDC dc(this);
CRect client(0,0,200,200);
dc.PlayMetaFile(handle,client);
//关闭剪贴板
CloseClipboard();
}
三、位图的操作
位图的操作稍微复杂一点,下面这个例子显示了如何在剪贴板保存位图:
if(OpenClipboard())
{
EmptyClipboard();
CBitmap * junk = new CBitmap();
CClientDC cdc(this);
CDC dc;
dc.CreateCompatibleDC(cdc);
CRect client(0,0,200,200);
junk-CreateCompatibleBitmap(cdc,client.Width(),client.Height());
dc.SelectObje
ct(junk);
DrawImage(dc,CString("Bitmap"));
//复制数据到剪贴板
SetClipboardData(CF_BITMAP,junk-m_hObject);
CloseClipboard();
delete junk;
}
下面的代码显示了如何从剪贴板上获得位图数据:
if(OpenClipboard())
{
//获得剪贴板数据
HBITMAP handle = (HBITMAP)GetClipboardData(CF_BITMAP);
CBitmap * bm = CBitmap::FromHandle(handle);
CClientDC cdc(this);
CDC dc;
dc.CreateCompatibleDC(cdc);
dc.SelectObject(bm);
cdc.BitBlt(0,0,200,200,dc,0,0,SRCCOPY);
CloseClipboard();
}
四、设置并使用自定义格式
使用RegisterClipboardFormat()函数,可以复制和粘贴任何你需要的数据类型。比如我们有以下一个数据类型:
struct MyFormatData
{
long val1;
int val2;
};
我们要把它复制到剪贴板,可以使用如下的代码:
UINT format = RegisterClipBoardFormat("MY_CUSTOM_FORMAT");
if(OpenClipboard())
{
MyFormatData data;
data.val1 = 100;
data.val2 = 200;
HGLOBAL clipbuffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, sizeof(MyFormatData));
MyFormatData * buffer = (MyFormatData*)GlobalLock(clipbuffer);
//保存到内存
*buffer = data;
//保存到剪贴板
GlobalUnlock(clipbuffer);
SetClipboardData(format,clipbuffer);
CloseClipboard();
}
读取数据使用以下代码:
UINT format = RegisterClipboardFormat("MY_CUSTOM_FORMAT");
MyFormatData data;
if(Openclipboard())
{
HANDLE hData =GetClipboardData(format);
MyFormatData * buffer = (MyFormatData*)GlobalLock(hData);
data = *buffer;
GlobalUnlock(hData);
CloseClipboard();
}
五、感知剪贴板内容的改变
通过Windows消息可以感知剪贴板内容是否发生改变,代码如下:
//In your initialization code call:
SetClipboardViewer(); //将我们的程序添加到剪贴板观察链
//In your message map add:
ON_MESSAGE(WM_DRAWCLIPBOARD, OnClipChange) //添加Message handle
//Which is declared as:
afx_msg void OnClipChange();
Finally implement:
void CDetectClipboardChangeDlg::OnClipChange()
{
CTime time = CTime::GetCurrentTime();
SetDlgItemText(IDC_CHANGED_DATE,time.Format("%a, %b %d, %Y -- %H:%M:%S"));
DisplayClipboardText();
}
六、自动将数据粘贴到另一应用程序窗口
只需获得相应窗口的句柄,并发送一个消息就可以了
请问如何使用VC++获得从图像采集卡(连着摄像头)得来的图像
现在在vc上采集视频常用的方法有三:vfw,directshow,opencv
你是要进行图像处理的话推荐opencv(具体参考:于仕琪,opencv教程基础篇中的例3-6,稍作修改,估计就能用于你的工程)
下面贴出我自己编的一个小工程:如有疑问,E-mail:zhoutingzhi@gmail.com
进行opencv的预备操作你要看那本书和逛opencv中文网
***隐藏网址***
如有问题可以和我讨论(我也是菜鸟,刚为解决了这个问题窃喜不已)。
1.新建mfc对话框工程,在其中添加一个picture控件,除了ID以外什么都不用改
2.在对话框头文件(没有Dlg那个)中添加(最好是在“#include "resource.h" // main symbols之后”):
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
3.在工程-》设置-》选择所有配置-》link(连接)-》对象/库模块-》中添加:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
4.在需要触发摄像头显示的地方添加:
void CVideomfcDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int ncams = cvcamGetCamerasCount( );//返回可以访问的摄像头数目
HWND MyWin=::GetDlgItem(m_hWnd,IDC_VIDEO); //获得控件句柄(IDC_VIDEO就是图片控件)
cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //选择第一个摄像头
int width=240;
int height=240;
cvcamSetProperty(0,CVCAM_PROP_WINDOW, &MyWin); // Selects a window for
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);
cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback1);
//回调函数将处理每一帧
cvcamInit( );
cvcamStart( );
}
5.改变显示的图像序列大小,在窗口属性设定了以后,添加如下代码:
int width=320; //这个就是需要显示的窗口大小
int height=240; //根据自己需要选择
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);
6.在对话框类中添加callback成员函数(注意,在添加函数的时候,一定要选择static,不选的话你就自己郁闷去吧,反正我是为了这个郁闷了2个礼拜)
void CVideomfcDlg::callback1(IplImage *image)
{
IplImage* image1 = image;
int i,j;
assert (image);
//获取当前系统时间
SYSTEMTIME st2={0};
GetLocalTime(&st2);
char sss={’C’,’:’,’\\’,’\\’,’1’,’\\’,’\\’,’1’,’1’,’1’,’1’,’1’,’1’,’.’,’j’,’p’,’g’}; //这个是用来存储所要保存的图片名的,用的是一个笨办法,先定义,再修改其中的数组值。
sss=st2.wHour/10+48; //获取系统当前小时
sss=st2.wHour%10+48;
sss=st2.wMinute/10+48; //获取系统当前分钟
sss=st2.wMinute%10+48;
sss=st2.wSecond/10+48; //获取系统当前秒
sss=st2.wSecond%10+48;
cvSaveImage(sss,image1); //使用系统当前时间为名称(XXXXXX.jpg)存储图片
}
ps:你还需要在c盘根目录下建立一个叫1的文件夹保存图片。
祝你成功!
c语言菜鸟 提问
VC6.0:大概用法:
你首先要打开VC6.0界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名.cpp),
步骤是:(先工程—后文件—编译—连接---运行)
1,建立一个工程,“文件”——“新建”,选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,点击“确定”,进入下一步,建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:显示你创建的工程的信息。
2,再在有一个的工程的条件下,我们再建立一个源文件;
“文件”——“新建”(快捷键Ctri+N),出现:建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:进入区,在主界面编写代码.编写完之后,可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了。
------------------------------分割线-----------------------------
你可以到百度文库搜索: vc6.0使用教程详解 .
或者在百度hi把你邮箱给我,我发给你.

更多文章:
高压断路器的触头间介质击穿电压(户内高压真空断路器的工作原理好难啊,有没有看的懂的专家能够给我解释一下的)
2025年7月23日 21:00
数据库实施阶段的工具(数据库应用系统的开发具体分为哪几个阶段(1)
2025年12月3日 16:45
小时代1折纸时代在线观看(哪里可以看小时代—折纸时代的全部内容啊)
2025年8月13日 05:30
python怎么读取二进制文件(如何用python生成和读取二进制文件)
2025年12月12日 09:15
网页设计与制作怎样制作网站(如何设计制作网站网站建设基本流程详解)
2026年5月30日 04:45
c语言一维数组有几个数(c语言的一维数组中至少要有几个元素)
2025年11月27日 13:30
linuxtracert命令的作用(急需高手指点~ping命令是用的什么端口)
2026年3月25日 22:30
cocos2d是三维游戏引擎吗(如何评价cocos2d-x的3d性能)
2026年9月16日 08:45
animation公司的动漫(全职猎人是哪个动画公司制作的这对我以后发展有很关键作用.求回答~)
2025年12月13日 16:30
sql server2019下载官网(sql2019有效安装文件夹在哪)
2025年10月13日 08:00
varchar2 100 能存多少汉字(varchar2(100)多长)
2026年4月21日 18:00
mysqlworkbench是什么(MySQL Workbench 5.2 CE如何应用都能做些什么)
2025年6月5日 16:45











