123456

 
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 39 下一页

2011年5月24日

类模板不能让声明和实现分离

摘要: 我们习惯是.h中放类的函数声明,在.cpp中放类的函数定义,但在类模板中不能这样做,如随手写了个demo测试了下.h中代码#pragma oncetemplate class CTemplate{public: CTemplate(void); ~CTemplate(void); void Fun(T a) ;}; .cpp中代码#include "StdAfx.h"#include "Template.h"templateCTemplate::CTemplate(void){}templateCTemplate::~CTemplate(void){}t 阅读全文

posted @ 2011-05-24 10:11 hgy413 阅读(245) 评论(0) 推荐(0) 编辑

子窗口和父窗口重绘

摘要: 子窗口无效不会引起父窗口重绘,父窗口无效,如果父窗口收到WM_PAINT,则所有子窗口都会在父窗口处理WM_PAINT之后收到WM_PAINT重绘消息,当然,如果父窗口带有属性WS_CLIPCHILDREN,则不会引起子窗口重绘 阅读全文

posted @ 2011-05-24 09:42 hgy413 阅读(223) 评论(0) 推荐(0) 编辑

2011年5月23日

WM_KILLFOCUS和WM_SETFOCUS

摘要: 当windows将输入焦点从一个窗口转换到另一个窗口时,它首先给正在失去焦点的窗口发一个WM_KILLFOCUS消息,wParam参数是接收输入焦点的窗口的句柄,然后window向正在接收输入焦点的窗口发送一个WM_SETFOCUS消息,同时wParam是还在失去输入焦点的窗口的句柄,(WPARAM为NULL表示没有窗口拥有或正在接收输入焦点)写个示例:父窗口可以阻止子窗口获得输入焦点. case WM_KILLFOCUS: Sethwnd = (HANDLE)wParam ; if (hwnd == GetParent((HWND)wParam)){ SetFocus(hwnd) ;}... 阅读全文

posted @ 2011-05-23 21:51 hgy413 阅读(872) 评论(0) 推荐(0) 编辑

2011年5月22日

InvalidateRect 和validateRect 和wm_paint

摘要: 今天复习了下windows程序设计五第9章节,想到了个问题: case WM_PAINT : InvalidateRect (hwnd, &rect, TRUE) ; hdc = BeginPaint (hwnd, &ps) ; SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ; SetBkMode (hdc, TRANSPARENT) ; TextOut (hdc, 24 * cxChar, cyCha... 阅读全文

posted @ 2011-05-22 20:17 hgy413 阅读(331) 评论(0) 推荐(0) 编辑

多线程的理解

摘要: 在CSDN中看到的,非常浅显,摘记如下:侯捷在《深入浅出MFC》里有句话,暂且引用一下 勿在浮沙筑高台! 还有:山高月小,水落石出! 学习是一步一个脚印慢慢来! 线程的好处在于:你可以边上网边听MP3! 正因为线程的时间片(进程对于系统而言也是线程),线程之间的切换(时间片按毫秒计),才可以让你感觉同时可以做多个事情(虽然只有一个CPU),即任务间的频繁切换给人以快捷的感觉,如果听MP3就不可以做别的事了,那就没人用Windows了 举个例子,去商店买东西,你去的时候售货员正在跟另一个顾客说话,此时你过去了, 他转头问你:先生,你需要买什么吗? 你说:噢,我买XXX 他说:请稍后,我马上就好 阅读全文

posted @ 2011-05-22 15:20 hgy413 阅读(123) 评论(0) 推荐(0) 编辑

XML学习笔记工员

摘要: 自己敲敲读书笔记:加深下印像1:XML开始一定要写上版本号和编码,如,不然会一直报错。2:如果XML两个元素之间没有内容,用IE打开,显示会变化,如,用IE打开后,显示为 ,不懂,回头查查。(???)3:XML元素命名规则:个人感觉和VC命名相似,还是手动敲敲,加深印象: 3.1:可以包括字母数字和其他符号。 3.2:数字不能做开头,标点不能做开头。 3.3:元素的名称不能以XML(或者xml,xMl...)开头,尝试了下,用IE打开,XML做开头或整个做为一个元素,并不会报错,不懂,回头再查。(???) 3.4:不能包含空格,不能包含:。4:发现一个xml spy,回去研究下怎么用,网易学院 阅读全文

posted @ 2011-05-22 12:36 hgy413 阅读(148) 评论(0) 推荐(0) 编辑

2011年5月6日

辅助线程安全退出

摘要: 在日常中,我们经常需要用到辅助线程,那么在程序退出时一定要先保证辅助线程已安全退出,因为在程序销毁时很多资源也被销毁掉了,那么如果这时辅助线程要用到某些资源已不存在了,就可能发生不可预料的后果(一般是程序崩溃)。怎么让辅助线程安全退出呢?直接贴代码吧:成员变量/线程函数声明:HANDLE m_hThread;HANDLE m_hThreadEvent[2];static DWORD WINAPI Thread(LPVOID lpvoid); OnInitDialog中初始化: m_hThreadEvent[0] = CreateEvent(NULL, FA... 阅读全文

posted @ 2011-05-06 08:53 hgy413 阅读(152) 评论(0) 推荐(0) 编辑

2011年5月3日

virtual list

摘要: 虚拟列表控件(CListCtrl)一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。二、为什么使用虚拟列表控件我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题:1是仅仅在ListCtrl中插入少量的数据,比如100个,然后通过[上一页][下一页]两个按钮进行控制,某一时刻显示的只是从xxx到xxx+100之间的记录。2是把所有数据全部插入到L 阅读全文

posted @ 2011-05-03 20:16 hgy413 阅读(467) 评论(0) 推荐(0) 编辑

2011年4月29日

STL—vector删除重复元素

摘要: STL提供了很多实用的算法,这里主要讲解sort和unique算法。删除重复元素,首先将vector排序。sort( vecSrc.begin(), vecSrc.end() );然后使用unique算法。vecSrc.erase( unique( vecSrc.begin(), vecSrc.end() ), vecSrc.end() );unique返回值是重复元素的开始位置。如果vector中存储的元素是自定义的结构或者是类,那么就需要重载操作符。根据类的某一个成员变量排序或者比较。sort算法需要重载"m_nCompanyId m_nCompanyId == oCompany 阅读全文

posted @ 2011-04-29 11:18 hgy413 阅读(201) 评论(0) 推荐(0) 编辑

2011年4月25日

怎么判断文件是否被占用

摘要: 我们在用程序打开一个文件时,可能会遇到共享违例,比如将一个CSV文件打开,你再在程序中去read,那么程序就会提示共享违例,解决方法是利用CreateFile来判断这个文件是否被被其他进程以独占的方式占用了,直接贴代码吧:CFileDialog openFileDlg(TRUE, _T(".csv"), NULL, 4|2, _T("CSV File(*.csv)|*.csv||"), this); if (openFileDlg.DoModal() == IDOK) { CString szPath = openFileDlg.GetPathName( 阅读全文

posted @ 2011-04-25 09:23 hgy413 阅读(361) 评论(0) 推荐(0) 编辑

上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 39 下一页

导航