摘要: 1 函数后带const,如:ResultType operator()( const unsigned char* a, const unsigned char* b, int size ) const;直接看例子:class R { public: R(int r1, int r2) { R1=r1; R2=r2; } void print(); void print() const; private: int R1, R2; }; void R::print() { cout<<R1<<R2<<endl;cout<<"it' 阅读全文
posted @ 2013-01-11 23:14 yurius 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 先来看普通函数调用。有类如下:class A{public:void callfunc(int a,int ,int ){printf("A::callfunc\r\n");}};int main(){A *pA=NULL;pA->callfunc();return 0;}惊奇地发现,调用函数无需任何空间,无需实例化类,只需定义一个类A的指针即可,这说明了,类内函数的调用,不依靠对像传递任何东西。只要编译器识别到指针的类型(属于哪个类)即可。当然,有一种情况例外,那就是。。。虚函数看以下代码:#include#includeclass A{public:void f1 阅读全文
posted @ 2013-01-11 23:13 yurius 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 1std::partition Syntax:#include <algorithm>bidirectional_iterator partition( bidirectional_iterator start,bidirectional_iterator end, Predicate p );算法partition按照谓词p的返回值是true或是false重新整理[start, end)之间的所有元素.换句话说, partition利用p将元素分成两组. 其返回值是一个指向false组第一个元素的迭代器partition以线性时间(linear time)运行直接看以下代码:bo 阅读全文
posted @ 2013-01-11 23:13 yurius 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 上面有博文已经分析过一件事,现在扩展一下,顺带提下this指针class Test{void callBackFun(){}};void main(void){Test::callBackFun();//非法,即使调用函数无需实例化,这样的直接调用也是不被允许的,因为参数 不够,参数表里还需一个(Test* this)Test* test;test->callBackFun();//合法,这里显然传入的this指针即为test,因test未指向任何值,故只能调 函数,取成员变量时即出错Test test_valid;test=&test_valid;test->callBa 阅读全文
posted @ 2013-01-11 23:11 yurius 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 1 CString转int直接用atoi 阅读全文
posted @ 2013-01-11 23:10 yurius 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 没发现有这个事件,于是在PreTranslateMessage里拦截:BOOL CDMFCView::PreTranslateMessage(MSG* pMsg){// TODO: Add your specialized code here and/or call the base classif (pMsg->hwnd == m_flow_wt_edit.m_hWnd && pMsg->message ==WM_LBUTTONDOWN){。。。。。。。。。。。。。。。//响应事件m_flow_rd_edit.SetFocus();pMsg->hwnd = 阅读全文
posted @ 2013-01-11 23:09 yurius 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 例如已建一个MDI,有两个文档。首先要明确一个MDI里的哪些东西有句柄,各是怎么样的:看上图,红线框内的都是具有句柄的,其中,父窗口cstest的子窗口先必须是MDI Client(MDI Client是类型),MDI Client有两个子窗口,子窗口的句柄的text为1(或2),内含Dialog(类型为#32770),Dialog内含控件句柄。在VIEW类中直接使用HWND hWnd = AfxGetMainWnd()->m_hWnd;找到的是父窗口的句柄,即含有两个子文档的大窗口的句柄。在VIEW类中直接使用HWND hWnd=GetSafeHwnd();找到的是激活的子窗口的vie 阅读全文
posted @ 2013-01-11 23:08 yurius 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 1 调出控制台在APP类中的InitInstance()增加以下代码:AllocConsole();SetConsoleTitle(_T("Debug Output"));_tfreopen(_T("CONOUT$"), _T("w"), stdout);2 文本框显示默认的字符只要在OnInitDialog函数添加GetDlgItem(IDC_EDIT6)->SetWindowText("20");就可以了,就在对话框出现(OnInitDialog)之前显示文本框的默认字符(20)3 添加了slider后删 阅读全文
posted @ 2013-01-11 23:06 yurius 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 主要参考来源:http://wgq837051.iteye.com/blog/851915和http://www.cppblog.com/cs-xiaolee/archive/2011/12/01/161292.html(好博!)以上是针对不同文档需要不同类的,比如一个是原理图,一个是PCB的文档。如果所有文档采用同样的VIEW类,可以在初始化app的时候新建一个文档:pMainFrame->SendMessage(WM_COMMAND, ID_FILE_NEW, 0);怎么让当前的窗口响应当前窗口上的按钮呢?怎么让使用同一个类的不同窗口做不同的事呢?下面我用这个笨方法。。。1 用上述方 阅读全文
posted @ 2013-01-11 23:05 yurius 阅读(4089) 评论(0) 推荐(0) 编辑
摘要: 刚开始从C++向MFC过渡的时候,发现一个HELLO就要上百行语句,面对Wizard一头N个大,一打开电脑就问自己,这东西是从哪开始的啊,WinMain哪去了,我靠了,上百行写个HELLO还找不到WinMain,找不到WinMain我从哪开始学啊我?再后来发现不光是WinMain,注册窗口类,消息循环,窗口函数,CreateWindow通通没有,想改个窗口标题都没地找,在一大堆书和光盘中爬行了几个月后突然发现一个手工写的纯MFC程序就16行代码,可以正常编译运行,就拿出C++编程的那点底子,不就16行吗,一天一行半个月我也通了.果然经过一翻..啊..再结合以前看过的书和光盘,今天终于大功告成, 阅读全文
posted @ 2013-01-11 23:03 yurius 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 摘自百度百科:所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。这里说了"\"+asc2能表示ASC2码。所以\15和CR(asc2是13,八进制是15)和\r是一样的。 阅读全文
posted @ 2013-01-11 23:01 yurius 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1 char和intchar a=(char)0x20 得a=32char a=(char)20 得a=20 阅读全文
posted @ 2013-01-11 22:59 yurius 阅读(85) 评论(0) 推荐(0) 编辑