<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Narvik的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Narvik</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Narvik]]></copyright><item><title><![CDATA[C++命名规则【转】]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9498129</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9498129</guid><author>Narvik</author><pubDate>Fri, 26 Jul 2013 16:52:08 +0800</pubDate><description><![CDATA[C++以及MFC的命名规则基本上是符合匈牙利命名法的，匈牙利命名法是一种编程时的命名规范。基本原则是：变量名＝属性＋类型＋对象描述，其中每一对象的名称都要求有明确含义，可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。　　


　　举例来说，表单的名称为form，那么在匈牙利命名法中可以简写为frm，则当表单变量名称为Switchboard时，]]></description><category></category></item><item><title><![CDATA[WM_PAINT详解]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9449641</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9449641</guid><author>Narvik</author><pubDate>Wed, 24 Jul 2013 13:26:35 +0800</pubDate><description><![CDATA[WM_paint详解



 


http://blog.sina.com.cn 2007年02月15日17:43 7456wg






标签：
















WM_PAINT是Windows窗口系统中一条重要的消息，
应用程序通过处理该消息实现在窗口上的绘制工作。




1.
系统何时发送WM_]]></description><category></category></item><item><title><![CDATA[关于VC中 error C2871: 'std' : does not exist or is not a namespace]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9400637</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9400637</guid><author>Narvik</author><pubDate>Sun, 21 Jul 2013 20:43:11 +0800</pubDate><description><![CDATA[#include using namespace std;然后编译时出现 error C2871: 'std' : does not exist or is not a namespace查了一下，原来 C++有两个不同版本的头文件。引入名字空间这个概念以前编译器用的是#include ，而引入名字空间的概念以后std名字空间的头文件名字变成了。是比较老的C++的头文件的版本，而namespace]]></description><category></category></item><item><title><![CDATA[GDI坐标系之间的关系]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9170847</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9170847</guid><author>Narvik</author><pubDate>Tue, 25 Jun 2013 16:07:39 +0800</pubDate><description><![CDATA[设置坐标映射


（1）Windows坐标系统
Windows坐标系分为逻辑坐标系和设备坐标系两种，GDI支持这两种坐标系。一般而言，
GDI的文本和图形输出函数使用逻辑坐标，而在客户区移动或按下鼠标的鼠标位置是采用设备坐标。
逻辑坐标系是面向DC的坐标系，这种坐标不考虑具体的设备类型，在绘图时，Windows会根据当前设置的映射模式将逻辑坐标转换为设备坐标。
设备坐标系是面向物理设]]></description><category></category></item><item><title><![CDATA[设备坐标和逻辑坐标]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9170685</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9170685</guid><author>Narvik</author><pubDate>Tue, 25 Jun 2013 15:54:15 +0800</pubDate><description><![CDATA[要用到两个函数：
CDC::LPtoDP  将逻辑坐标转换为设备坐标
CDC::DPtoLP  将设备坐标转换为逻辑坐标
 
       设备坐标（Device Coordinate）又称为物理坐标（Physical Coordinate），是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置，是以像素为单位来表示的，]]></description><category></category></item><item><title><![CDATA[OnCreate 函数的说明]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/9170155</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/9170155</guid><author>Narvik</author><pubDate>Tue, 25 Jun 2013 15:08:13 +0800</pubDate><description><![CDATA[百科：
OnCreate是一个消息响应函数，是响应WM_CREATE消息的一个函数，而WM_CREATE消息是由Create函数调用的。
 
　　在view类中，Create 是虚函数由框架调用，是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。
 
　　一个窗口创建（Create）之后，会向操作系统发送WM_CREATE消息，OnCreate()]]></description><category></category></item><item><title><![CDATA[error C2061: syntax error : identifier 'CAMSchedule']]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8929123</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8929123</guid><author>Narvik</author><pubDate>Wed, 15 May 2013 10:19:15 +0800</pubDate><description><![CDATA[DirectShow中的例子，在编译的过程中经常会出现这样的错误：

Error 1 error C2061: syntax error : identifier 'CAMSchedule' c:/program files/microsoft sdks/windows/v6.0/samples/multimedia/directshow/baseclasses/refclock.h 80]]></description><category></category></item><item><title><![CDATA[RenderStream 智能连接Filter]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8919087</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8919087</guid><author>Narvik</author><pubDate>Mon, 13 May 2013 09:39:06 +0800</pubDate><description><![CDATA[RenderStream 智能连接Filter

　　ICaptureGraphBuilder2::RenderStream方法可以同时将两个或者三个filter连接成一个链（chain）。通常情况下，当每个filter只有一个输出pin和一个输入pin时，这个方法就才适用。

　　我们现在先忽略前两个参数，第三个参数是一个IUnknown指针，指向一个filter或者输出pin。第五，六]]></description><category></category></item><item><title><![CDATA[文件夹浏览(SHBrowseForFolder)]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8915988</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8915988</guid><author>Narvik</author><pubDate>Sun, 12 May 2013 00:16:27 +0800</pubDate><description><![CDATA[一.首先要为SHBrowseForFolder准备一个结构体BROWSEINFO
typedef struct _browseinfoW {
    HWND        hwndOwner;
    PCIDLIST_ABSOLUTE pidlRoot;
    LPWSTR       pszDisplayName;        // Return display name of ite]]></description><category></category></item><item><title><![CDATA[BROWSEINFO结构体]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8914544</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8914544</guid><author>Narvik</author><pubDate>Sat, 11 May 2013 15:38:41 +0800</pubDate><description><![CDATA[BROWSEINFO的结构如下：
typedef struct _browseinfo { 
    HWND hwndOwner;         
       // 父窗口句柄
    LPCITEMIDLIST pidlRoot;              
      // 要显示的文件夾的根(Root)
    LPTSTR pszDisplayName;]]></description><category></category></item><item><title><![CDATA[DirectShow--用GraphEdit辅助调试]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8911017</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8911017</guid><author>Narvik</author><pubDate>Fri, 10 May 2013 15:09:16 +0800</pubDate><description><![CDATA[DirectShow--用GraphEdit辅助调试



GraphEdit

  微软的SDK里面有个DirectShow的辅助工具GraphEdit，这里的文字简单介绍如何将应用程序生成的GraphBuilder插入到GraphEdit中直观的显示。




  可能一开始我们对这种应用有点儿不理解，既然是自己写的代码，GraphBuilder里面的链路也是自己建立的，]]></description><category></category></item><item><title><![CDATA[Capture Graph Builder]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8910655</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8910655</guid><author>Narvik</author><pubDate>Fri, 10 May 2013 14:25:11 +0800</pubDate><description><![CDATA[Capture Graph Builder可以用来构建大多数的filter图表，并不仅仅是捕捉graph。本文简单介绍了如何利用Capture Graph Builder来构建graph。

Capture Graph Builder暴露了ICaptureGraphBuilder2接口指针，首先创建一个capture builder，和一个filter图表管理器对象，然后用图表管理器对象指针初]]></description><category></category></item><item><title><![CDATA[DirectShow 中相关名词解析]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8910595</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8910595</guid><author>Narvik</author><pubDate>Fri, 10 May 2013 14:05:46 +0800</pubDate><description><![CDATA[＊Filter Graph Manager。这个对象用于控制filter graph，支持IGraphBuilder、IMediaControl和IMediaEventEx等许多接口。所有的directshow应用程序都需要在某些地方用到这个对象，虽然在有些情况下，是其它的对象为应用程序创建了filter graph manager。
    ＊Capture Graph Builder。这个对]]></description><category></category></item><item><title><![CDATA[设备枚举]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8899269</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8899269</guid><author>Narvik</author><pubDate>Wed, 08 May 2013 13:19:20 +0800</pubDate><description><![CDATA[设备枚举的过程大致如下：
（1）创建一个系统枚举组件（CLSID_SystemDeviceEnum），并获得ICreateDevEnum接口。使用CoCreateInstance函数。
（2）使用接口方法ICreateDevEnum::CreateClassEnumerator为指定目录创建一个枚举器，即IEnumMoniker对象，同时获得IEnumMoniker接口。
（3）使用接口方法]]></description><category></category></item><item><title><![CDATA[文本编程]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8895835</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8895835</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 17:13:24 +0800</pubDate><description><![CDATA[创建文本插入符
　首先创建创建一个单文档的MFC AppWizard(exe)工程，取名为Text。在文本中创建插入符，可以利用CWnd类的CreateSolidCaret()函数来完成。
为CTextView添加WM_CREATE
int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
 if (CView::OnCreate]]></description><category></category></item><item><title><![CDATA[窗口类，窗口类对象与窗口]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8895560</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8895560</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 15:57:28 +0800</pubDate><description><![CDATA[窗口创建时都会产生WM_CREATE消息，CMainFrame提供一个OnCreate函数，该函数是用来响应这条窗口创建消息的。在OnCreate函数return语句签添加如下代码
　　 CButton btn;
 　　btn.Create("按键",WS_CHILD|BS_DEFPUSHBUTTON,CRect(0,0,100,100),this,123);　
　　我们发现按钮并没有显示出]]></description><category></category></item><item><title><![CDATA[第三章]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8895005</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8895005</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 15:10:00 +0800</pubDate><description><![CDATA[看一下CTestApp的源文件，可以发现程序中定义了一个CTestApp类型的全局对象。
/////////////////////////////////////////////////////////////////////////////
// The one and only CTestApp object
CTestApp theApp;
 
 
我们发现程序执行的顺序依次是]]></description><category></category></item><item><title><![CDATA[windows程序]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8894641</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8894641</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 14:10:57 +0800</pubDate><description><![CDATA[#include 
#include 
LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam
);
int WINAPI WinMain(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLi]]></description><category></category></item><item><title><![CDATA[在状态栏上显示鼠标当前位置]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8893590</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8893590</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 10:15:28 +0800</pubDate><description><![CDATA[想要获取鼠标的当前位置，就需要捕获它。这里需要注意的是：视类窗口始终覆盖在框架类窗口之上，所以如果想要捕获与鼠标相关的消息，应该在视类中完成。因此，我们可以为CstyleView类添加WM_MOUSEMOVE消息的响应函数。但是这里遇到一个问题：m_wndstatusBar是框架类窗口的成员变量，我们在视类中应该如何调用它呢。我们可以用GetParent()函数获取父类的指针，因为视类的父类正是框]]></description><category></category></item><item><title><![CDATA[进度栏编程]]></title><link>https://blog.youkuaiyun.com/Narvik/article/details/8893349</link><guid>https://blog.youkuaiyun.com/Narvik/article/details/8893349</guid><author>Narvik</author><pubDate>Tue, 07 May 2013 09:26:00 +0800</pubDate><description><![CDATA[当窗口尺寸发生变化时，窗口会发生一个重绘，于是会发生一个WM_PAINT消息，为CMainFrame类添加WM_PAINT消息的响应函数OnPaint，而且当窗口第一次显示时，就会调用OnPaint函数。
　　void CMainFrame::OnPaint() 
{
 CPaintDC dc(this); // device context for painting
 
 // TOD]]></description><category></category></item></channel></rss>