自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 C++命名规则【转】

C++以及MFC的命名规则基本上是符合匈牙利命名法的,匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。    举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,

2013-07-26 16:52:08 551

转载 WM_PAINT详解

WM_paint详解 http://blog.sina.com.cn 2007年02月15日17:43 7456wg标签:WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。1.系统何时发送WM_

2013-07-24 13:26:35 614

转载 关于VC中 error C2871: 'std' : does not exist or is not a namespace

#include using namespace std;然后编译时出现 error C2871: 'std' : does not exist or is not a namespace查了一下,原来 C++有两个不同版本的头文件。引入名字空间这个概念以前编译器用的是#include ,而引入名字空间的概念以后std名字空间的头文件名字变成了。是比较老的C++的头文件的版本,而namespace

2013-07-21 20:43:11 820

转载 GDI坐标系之间的关系

设置坐标映射(1)Windows坐标系统Windows坐标系分为逻辑坐标系和设备坐标系两种,GDI支持这两种坐标系。一般而言,GDI的文本和图形输出函数使用逻辑坐标,而在客户区移动或按下鼠标的鼠标位置是采用设备坐标。逻辑坐标系是面向DC的坐标系,这种坐标不考虑具体的设备类型,在绘图时,Windows会根据当前设置的映射模式将逻辑坐标转换为设备坐标。设备坐标系是面向物理设

2013-06-25 16:07:39 1108

转载 设备坐标和逻辑坐标

要用到两个函数:CDC::LPtoDP  将逻辑坐标转换为设备坐标CDC::DPtoLP  将设备坐标转换为逻辑坐标        设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,

2013-06-25 15:54:15 599

转载 OnCreate 函数的说明

百科:OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。   在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。   一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate()

2013-06-25 15:08:13 2086

转载 error C2061: syntax error : identifier 'CAMSchedule'

DirectShow中的例子,在编译的过程中经常会出现这样的错误:Error 1 error C2061: syntax error : identifier 'CAMSchedule' c:/program files/microsoft sdks/windows/v6.0/samples/multimedia/directshow/baseclasses/refclock.h 80

2013-05-15 10:19:15 1300

转载 RenderStream 智能连接Filter

RenderStream 智能连接Filter  ICaptureGraphBuilder2::RenderStream方法可以同时将两个或者三个filter连接成一个链(chain)。通常情况下,当每个filter只有一个输出pin和一个输入pin时,这个方法就才适用。  我们现在先忽略前两个参数,第三个参数是一个IUnknown指针,指向一个filter或者输出pin。第五,六

2013-05-13 09:39:06 1129

转载 文件夹浏览(SHBrowseForFolder)

一.首先要为SHBrowseForFolder准备一个结构体BROWSEINFOtypedef struct _browseinfoW { HWND hwndOwner; PCIDLIST_ABSOLUTE pidlRoot; LPWSTR pszDisplayName; // Return display name of ite

2013-05-12 00:16:27 763

转载 BROWSEINFO结构体

BROWSEINFO的结构如下:typedef struct _browseinfo {     HWND hwndOwner;                // 父窗口句柄    LPCITEMIDLIST pidlRoot;                    // 要显示的文件夾的根(Root)    LPTSTR pszDisplayName;

2013-05-11 15:38:41 671

转载 DirectShow--用GraphEdit辅助调试

DirectShow--用GraphEdit辅助调试GraphEdit  微软的SDK里面有个DirectShow的辅助工具GraphEdit,这里的文字简单介绍如何将应用程序生成的GraphBuilder插入到GraphEdit中直观的显示。  可能一开始我们对这种应用有点儿不理解,既然是自己写的代码,GraphBuilder里面的链路也是自己建立的,

2013-05-10 15:09:16 1167 2

转载 Capture Graph Builder

Capture Graph Builder可以用来构建大多数的filter图表,并不仅仅是捕捉graph。本文简单介绍了如何利用Capture Graph Builder来构建graph。Capture Graph Builder暴露了ICaptureGraphBuilder2接口指针,首先创建一个capture builder,和一个filter图表管理器对象,然后用图表管理器对象指针初

2013-05-10 14:25:11 1130

转载 DirectShow 中相关名词解析

*Filter Graph Manager。这个对象用于控制filter graph,支持IGraphBuilder、IMediaControl和IMediaEventEx等许多接口。所有的directshow应用程序都需要在某些地方用到这个对象,虽然在有些情况下,是其它的对象为应用程序创建了filter graph manager。    *Capture Graph Builder。这个对

2013-05-10 14:05:46 549

原创 设备枚举

设备枚举的过程大致如下:(1)创建一个系统枚举组件(CLSID_SystemDeviceEnum),并获得ICreateDevEnum接口。使用CoCreateInstance函数。(2)使用接口方法ICreateDevEnum::CreateClassEnumerator为指定目录创建一个枚举器,即IEnumMoniker对象,同时获得IEnumMoniker接口。(3)使用接口方法

2013-05-08 13:19:20 1429

原创 文本编程

创建文本插入符 首先创建创建一个单文档的MFC AppWizard(exe)工程,取名为Text。在文本中创建插入符,可以利用CWnd类的CreateSolidCaret()函数来完成。为CTextView添加WM_CREATEint CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate

2013-05-07 17:13:24 605

原创 窗口类,窗口类对象与窗口

窗口创建时都会产生WM_CREATE消息,CMainFrame提供一个OnCreate函数,该函数是用来响应这条窗口创建消息的。在OnCreate函数return语句签添加如下代码   CButton btn;   btn.Create("按键",WS_CHILD|BS_DEFPUSHBUTTON,CRect(0,0,100,100),this,123);   我们发现按钮并没有显示出

2013-05-07 15:57:28 843

原创 第三章

看一下CTestApp的源文件,可以发现程序中定义了一个CTestApp类型的全局对象。/////////////////////////////////////////////////////////////////////////////// The one and only CTestApp objectCTestApp theApp;  我们发现程序执行的顺序依次是

2013-05-07 15:10:00 441

原创 windows程序

#include #include LRESULT CALLBACK WinSunProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi

2013-05-07 14:10:57 496

原创 在状态栏上显示鼠标当前位置

想要获取鼠标的当前位置,就需要捕获它。这里需要注意的是:视类窗口始终覆盖在框架类窗口之上,所以如果想要捕获与鼠标相关的消息,应该在视类中完成。因此,我们可以为CstyleView类添加WM_MOUSEMOVE消息的响应函数。但是这里遇到一个问题:m_wndstatusBar是框架类窗口的成员变量,我们在视类中应该如何调用它呢。我们可以用GetParent()函数获取父类的指针,因为视类的父类正是框

2013-05-07 10:15:28 1768 1

原创 进度栏编程

当窗口尺寸发生变化时,窗口会发生一个重绘,于是会发生一个WM_PAINT消息,为CMainFrame类添加WM_PAINT消息的响应函数OnPaint,而且当窗口第一次显示时,就会调用OnPaint函数。  void CMainFrame::OnPaint() { CPaintDC dc(this); // device context for painting  // TOD

2013-05-07 09:26:00 627

原创 VC++第九章

修改应用程序窗口的外观第一:在窗口创建之前设置    在MainFrame类的PreCreateWindow成员函数中进行.即对函数的形参cs进行设置.    注:cs是CREATETRUCT结构.CREATESTRUCTtypedef struct tag CREATESTRUCT{ LPVOID lpCreateParams; HANDLE hInstance;

2013-05-06 13:36:51 675

转载 C++ primer中的protected 成员深入理解

C++ primer中的protected 成员深入理解protected成员:(《C++ primer》P475给出的概念,因为翻译的问题,发现很多地方“类的用户”是指我们常说的“对象”)像private成员一样,protected成员不能被类的用户(也称为对象) 访问。 像public成员一样,protected成员可被该类的派生类访问。 派生类只能通过派生类对象访问其基类

2013-04-21 22:03:23 755

原创 二维数组2

#include #include using namespace std;int main(){ int ia[3][4]={0,1,2,3,4,5,6}; //typedef int int_array[4]; //int_array *ip=ia; //for(int_array *p=ia;p!=ia+3;++p) for(int (*ip) [4]

2013-04-06 15:38:18 564

原创 二维数组

#include #include using namespace std;int main(){ int ia[3][4]={0,1,2,3,4,5,6}; int *ip; ip=ia[1]; cout<<*ip<<endl; return 0;} ia[1]在本代码中应该是一个具体的值,而不是一个指针。

2013-04-06 15:01:55 453

原创 bitset中的flip()函数

#include #include using namespace std;int main(){ bitset bitvec3(0xfff1); unsigned long ulong =bitvec3.to_ulong(); cout<<"before flip:ulong="<<ulong<<endl; bitvec3.flip(); ulong=bitvec3.to_u

2013-04-04 20:17:15 1016

原创 toupper()

#include #include #include using namespace std;int main(){ string str("some string!!!"); string::size_type space_cnt=0; for(string::size_type ix=0;ix!=str.size();++ix) cout<<toupper(str[ix]

2013-04-03 10:00:37 1060

原创 size_type

#include //#include using namespace std;int main(){ string str("some string"); for(string::size_type ix=0;ix!=str.size();++ix) cout<<str[ix]<<endl; return 0;}

2013-04-03 09:35:08 577

原创 ctrl+z 和 ctrl+c的关系

#include #include using namespace std;int main(){ string word; while(cin>>word) cout<< word << endl; return 0;}在VS的命令行模式下,可以发现效果是不一样的,在按下ctrl+c后,命令行直接就提示”请按任意键继续“,而在按下ctrl+z后需要

2013-04-02 22:23:01 689

原创 关于string类型的定义

#include #include using namespace std;int main(){ string s; int a; cin >> s; cout<<s<<endl; return 0;}        在没有include后,程序显示string类型是已经被定义的,这说明string类型的定义并不是在文件中,在点击string类型后,VS打开了名为

2013-04-02 22:13:38 1185

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除