<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王百万的Blog]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hqok</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hqok]]></copyright><item><title><![CDATA[为鼠标移动事件添加新的功能－在状态栏显示鼠标坐标]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1428913</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1428913</guid><author>hqok</author><pubDate>Mon, 04 Dec 2006 10:29:00 +0800</pubDate><description><![CDATA[这次将本来在客户区输出的鼠标位置改成在状态栏输出。首先，在“资源符号”中添加三个常量符号，分别为：ID_MOUSE_X，ID_MOUSE_Y，ID_SCROLL_TEXT。然后在字符串资源中添加三个字符串：ID_MOUSE_X     X = ****ID_MOUSE_Y     Y = ****ID_SCROLL     Welcome to Visual C++.NET]]></description><category></category></item><item><title><![CDATA[为鼠标移动事件添加新的功能－在工具栏添加快捷按钮]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1428688</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1428688</guid><author>hqok</author><pubDate>Mon, 04 Dec 2006 05:58:00 +0800</pubDate><description><![CDATA[ 首先，插入一条新的工具栏，命名为IDR_MYTOOLBAR，然后分别创建两个图标，分别命名为：ID_SHOW_POS，ID_TEST，如下图所示：为CMainFrame类添加一个protected的成员：CToolBar m_wndToolBar1，通过此变量将新建的工具栏加载到程序中，修改OnCreate函数，在原来已有的工具栏创建代码下面添加如下代码：if (!m_wndTool]]></description><category></category></item><item><title><![CDATA[为鼠标移动事件添加新的功能－弹出菜单决定是否显示]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1425940</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1425940</guid><author>hqok</author><pubDate>Sat, 02 Dec 2006 06:21:00 +0800</pubDate><description><![CDATA[首先，在资源里插入一条新的菜单，命名为IDR_FLOATMENU，顶层菜单的标题可以随便写，实际上对程序没有任何的影响，在顶层菜单下面添加两个子菜单项，分别为ID_SHOW_POS，标题是“显示鼠标坐标[&D]“，还有一个为ID_TEST，主要用来测试一下，标题是“测试菜单[&T]“。然后将ID_TEST映射到视图类中，将其处理函数改成：void CMouseMoveView::OnTest(]]></description><category></category></item><item><title><![CDATA[为鼠标移动事件添加新的功能－让菜单决定是否显示]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1425487</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1425487</guid><author>hqok</author><pubDate>Fri, 01 Dec 2006 22:16:00 +0800</pubDate><description><![CDATA[首先添加一个新的资源符号，打开"Resource Symbols"，添加"ID_SHOW_POS"，值取默认的就行了。添加一个BOOL型变量：m_bDisplay，初始化为true，用来决定该菜单是否显示被选中。添加代码，实现该菜单项的显示，在CMainFrame::OnCreate函数中添加以下代码：CMenu* pSysMenu = GetMenu(); //获得系统菜单 CMen]]></description><category></category></item><item><title><![CDATA[一个响应鼠标移动的简单实例！]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1423835</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1423835</guid><author>hqok</author><pubDate>Fri, 01 Dec 2006 09:16:00 +0800</pubDate><description><![CDATA[首先，利用MFC建立一个单文档的程序！为view类添加一个私有成员，m_MousePos，类型是CPoint，初始化为0。添加WM_MOUSEMOVE函数，重写如下：void CMouseMoveView::OnMouseMove(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 m_MousePos = point; ]]></description><category></category></item><item><title><![CDATA[SDK的hello world程序！]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1423775</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1423775</guid><author>hqok</author><pubDate>Fri, 01 Dec 2006 08:54:00 +0800</pubDate><description><![CDATA[#include //主函数原型，整个函数的执行从该函数开始int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int);LRESULT WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);//WinMain函数int WINAPI WinMain (HINSTANCE hInstance, HINSTANC]]></description><category></category></item><item><title><![CDATA[建立十个习惯，离成功近一步]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1395900</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1395900</guid><author>hqok</author><pubDate>Sun, 19 Nov 2006 12:20:00 +0800</pubDate><description><![CDATA[一、不轻言退缩二、不停学习，不断修正。三、坐言起行，立即动手，从小事做起。为什么看到机会却没有抓住，是因为我们在犹豫：用什么方法更好啊，是不是还有更好的机会啊，或者这是不是机会啊。说狼在森林里追兔子，兔子看到狼来了决定跑，它想，是先跳左腿，还是先跳右腿，是怎么跳好看一点，还没来得及想完，就被狼吃了。简单的事情简单做，复杂的事情简单做，简单的事情重复做等等，都是保证坐言起行效]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记－－15.3.3模板中的常量]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1389255</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1389255</guid><author>hqok</author><pubDate>Thu, 16 Nov 2006 23:54:00 +0800</pubDate><description><![CDATA[//15.3.3模板中的常量#ifndef TCONST_H_#define TCONST_H_#include #include using namespace std;template class mblock //模板的参数可以使用编译器的内置类型，而且可以使用缺省值{private: T array[size];public: T& operator[] (int index) {  ]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--15.3.2栈模板的实现与测试代码]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1389046</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1389046</guid><author>hqok</author><pubDate>Thu, 16 Nov 2006 22:17:00 +0800</pubDate><description><![CDATA[//15.3.2栈模板#ifndef STACKT_H_#define STACKT_H_template class stacktIter;//先声明，下面的类中要用到该模板。template class stackt{ enum { size = 100 }; T stack[size]; int top;public: stackt() : top(0)  {  stack[top] =]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--15.3.1非内联函数的实现]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1377495</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1377495</guid><author>hqok</author><pubDate>Fri, 10 Nov 2006 14:10:00 +0800</pubDate><description><![CDATA[  template class array{ enum { size = 100 }; T A[size];public:    T& operator[] ( int index );};templateT& array::operator [] ( int index ) //在成员函数的定义中，类名称被限制为模板参数类型：array{ return A[index];}//由...]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--15.4模板的语法]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1376801</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1376801</guid><author>hqok</author><pubDate>Fri, 10 Nov 2006 09:04:00 +0800</pubDate><description><![CDATA[#include "stdafx.h"#include using namespace std;//15.3模板的语法template class array //这里T是替换参数,它表示一个类型的名称在包容器类中，它将出现在那些原本由某一特定类型出现的地方{ enum { size = 100 };//由于类内部的const常量无法用来做数组的大小，所以采用了enum类型，也是常量 T A[si]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--13.4继承与组合]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1374843</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1374843</guid><author>hqok</author><pubDate>Thu, 09 Nov 2006 08:05:00 +0800</pubDate><description><![CDATA[#include "stdafx.h"#include using namespace std;//13.4组合与继承的联合class A { int i;public: A( int I ) { i = I; } ~A() {} void f() const {}};class B { int i;public: B( int I ) { i = I; } ~B() {} void f() ]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--10.4指向对象成员的指针]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1374680</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1374680</guid><author>hqok</author><pubDate>Thu, 09 Nov 2006 00:43:00 +0800</pubDate><description><![CDATA[如假有一个结构 : struct sample { int a; };如果有这个结构的对象so与指针sp,可以通过下面的方法选择对象成员:so.a;   sp->a;如果有一个指针指向了a,那我们该怎样给它赋值呢?应该是这样的: so.*pm = 47;  sp->*pm = 47;指向一个对象的指针的语法变成了->*,而对象则为.*那该怎么定义呢?int sample]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--10.2C++中的引用]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1374653</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1374653</guid><author>hqok</author><pubDate>Thu, 09 Nov 2006 00:19:00 +0800</pubDate><description><![CDATA[引用像是一个自动能被编译器逆向引用的常量型指针.使用引用时的一些规则:1.当引用被创建时,它必须被初始化2.一旦一个引用被初始化指向一个对象,它就不能改变为对另一个对象的引用.3.不可能有NULL引用函数中的引用,一个例子:int* f( int* x ) {  (*x)++;  return x;}int& g( int& x ) {  x++;}]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--9.3静态成员函数]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1374639</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1374639</guid><author>hqok</author><pubDate>Thu, 09 Nov 2006 00:03:00 +0800</pubDate><description><![CDATA[像静态数据成员一样,我们也可以创建静态成员函数,它是为类的全体服务,而不是为类的一部分对象服务.这样就不需要定义一个全局函数,减少了全局名字空间的占用.静态成员函数不能访问一般的数据成员,它只能访问静态数据成员,也只能调用其他的静态成员函数.通常,当前对象的地址(this)是被传递到被调用的函数的,但一个静态成员函数没有this,所以它无法访问一般的成员函数. ]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--7.2指针常量]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1374442</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1374442</guid><author>hqok</author><pubDate>Wed, 08 Nov 2006 22:00:00 +0800</pubDate><description><![CDATA[指向const的指针:const指向那个"最靠近的",例如: const int* x, 是这样读的:x是一个指针,它指向一个const int";而int const* x也不是指针常量,它应该这样读:x是一个指向恰好是const的int 指针.真正的指针常量应该是这样子定义的:int d=1;int* const x=&d;注意:最好在一行里仅放一个指针定义,而且在定义的地方初始化]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--6.3文件输入输出流]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1372538</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1372538</guid><author>hqok</author><pubDate>Wed, 08 Nov 2006 07:59:00 +0800</pubDate><description><![CDATA[char buf[100]; string buf; ifstream in("目录.txt"); assert(in); ofstream out("C++.txt"); assert(out); int i=1; while(in.get(buf,100)) {  in.get();  cout   out  } assert(argc=2); ifstream in(argv[1])]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--5.3缺省参数]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1372524</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1372524</guid><author>hqok</author><pubDate>Wed, 08 Nov 2006 07:50:00 +0800</pubDate><description><![CDATA[缺省参数是在函数声明时就给定一个值,如果我们在调用参数时没有指定这一参数的值,编译器就会自动给这个参数赋上这个值.例:example( int size );example( int size, int quantity );可以用一个函数声明来代替:example( int size, int quantity = 0 );如果有两个定义:example( 100 )]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--5.1范围分解]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1372507</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1372507</guid><author>hqok</author><pubDate>Wed, 08 Nov 2006 07:13:00 +0800</pubDate><description><![CDATA[在C++中,有一个很重要的原因对函数进行重载:构造函数.因为构造函数的名字预先由类的名字确定,所以只能拥有一个构造函数的名字.但我们想用几种方法创造一个对象时该怎么办呢?这是就显现出重载的重要性了.我们对不同的参数使用同样的名字,只要函数的参数不同,编译器就会通过分解这些名字,范围和参数来产生内部名以供链接器使用.仅仅靠返回值来重载函数过于微妙了,所以C++中禁止这样做 ]]></description><category></category></item><item><title><![CDATA[Thinking in C++读书笔记--3.3友元]]></title><link>https://blog.youkuaiyun.com/hqok/article/details/1372502</link><guid>https://blog.youkuaiyun.com/hqok/article/details/1372502</guid><author>hqok</author><pubDate>Wed, 08 Nov 2006 07:00:00 +0800</pubDate><description><![CDATA[//一个嵌套的struct不能自动的获得存取私有成员的权限//必须遵循特定的规则:首先声明一个嵌套的struct,然后声明它是全局范围使用的一个友元#include "stdafx.h"#include #include #define SZ 20struct holder {private: int a[SZ];public: void initialize(); struct pointer ]]></description><category></category></item></channel></rss>