专心研究dotnet技术

.net啊.net什么叫.net呢?

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2006年6月30日

摘要: Windows类型 样本变量 MFC类 样本变量 HWND hWnd; CWnd* pWnd; HDLG hDlg; CDialog* pDlg; HDC hDC; CDC* pDC; HGDIOBJ hGdiObj; CGdiObject* pGdiObj; HPEN hPen; CPen* pPen; HBRUSH hBrush; CBrush* pBrush; HFONT hFont; CF... 阅读全文
posted @ 2006-06-30 22:31 xxsdfsdf 阅读(405) 评论(0) 推荐(0) 编辑

摘要: 首先我会罗列出一些获取句柄的win32 api 函数,然后简单说说他们的用途!最后说说我是怎么理解和应用的。见笑了! 可用的win32 api函数: 1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName) 2.HWND WindowFromPoint(POINT& Point) 3.BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) BOOL CALLBACK EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc,LPARAM lParam) BOOL CALLBACK 阅读全文
posted @ 2006-06-30 22:29 xxsdfsdf 阅读(1076) 评论(0) 推荐(0) 编辑

摘要: 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug多和字符串有关,典型的有:缓冲溢出、内存泄漏等。而且这些bug都是致命的,会造成系统的瘫痪。因此c++里就专门的做了一个类用来维护字符串指针。标准c++里的字符串类是string,在microsoft MFC类库中使用的是CString类。通过字符串类,可以大大的避免c中的关于字符串指针的那些问题。 阅读全文
posted @ 2006-06-30 22:28 xxsdfsdf 阅读(1216) 评论(0) 推荐(0) 编辑

摘要: (1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16 (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17 如果类的两个方法有一段公... 阅读全文
posted @ 2006-06-30 22:27 xxsdfsdf 阅读(484) 评论(0) 推荐(0) 编辑

摘要: 解析C语言中的sizeof 一、sizeof的概念    sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。  二、sizeof的使用方法    1、用于数据类型    sizeof使用形式:sizeof(type)    数据类型必须用括号括住。如sizeof(int)。  阅读全文
posted @ 2006-06-30 22:26 xxsdfsdf 阅读(714) 评论(0) 推荐(0) 编辑

摘要: AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name) 说明:定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在AND_CATCH块中调用TH... 阅读全文
posted @ 2006-06-30 22:23 xxsdfsdf 阅读(458) 评论(0) 推荐(0) 编辑

摘要: 1.创建一个表的映射 创建一个类,如CUserSet让它继承于CRecordset,创建完后VC让选择ODBC中的库,然后指定表我们选择user表,这样这个类基本上就和表user进行了映射.一定要在UserSet.h加入#include 不然会出一堆没定义的错误。 2.新增一条记录 CUserSet userset;//创建一个类的对象 userset.Open(CRecordset::snapshot,"select * from user"); userset.AddNew(); userset.m_username = "月风"; //把你要新加的内容传给记录集类对应数据库的字段 userset.m_sex="男"; userset.Update(); userset.Close(); 2.修改一条记录 CUserSet userset;//创建一个类的对象 CString strSql; strSq 阅读全文
posted @ 2006-06-30 22:22 xxsdfsdf 阅读(775) 评论(1) 推荐(0) 编辑

摘要: 重复启动关闭MDI程序的子窗口就会出现一个异常,然后就中断到: inline _variant_t::_variant_t(IDispatch* pSrc, bool fAddRef) throw() { V_VT(this) = VT_DISPATCH; V_DISPATCH(this) = pSrc; // Need the AddRef() as VariantClear() calls Release(), unless fAddRef // false indicates we're taking ownership // if (fAddRef) { V_DISPATCH(this)-AddRef(); 《--------这一行。 } } 并且fAddRef的value是1,开始还以为启动子FRMAE的时候哪地方没有释放或关闭,最后跟踪啊调试啊找问题啊,最后找到罪魁祸首的是我自己封装的数据库类,在构造函数中没有调用::CoInitialize(NUL 阅读全文
posted @ 2006-06-30 22:21 xxsdfsdf 阅读(523) 评论(0) 推荐(0) 编辑

摘要: //自己封装了一个插入List行的函数 int CMyListCtrl::insertRow(int nPos,int nNoOfCols,LPCTSTR pText,...) { va_list argList; va_start(argList, pText); int nCount,nIndex; nIndex = m_pList-InsertItem(nPos,pText); for(nCount=1;nCount { LPCSTR p = va_arg(argList,LPCSTR); m_pList-SetItemText(nIndex,nCount,p); } va_end(argList); return nIndex; } //初始化ListCtrl风格,表头的函数 void CMyListCtrl::initListCtrl(CWn 阅读全文
posted @ 2006-06-30 22:20 xxsdfsdf 阅读(1375) 评论(0) 推荐(0) 编辑

摘要: CDialog的OnOK虚函数控制了OK按钮,它负责触发数据交换以及从对话框中退出,然而,Enter键碰巧也具有同样的效果。也许这是我们所需要的,也可能我们不需要这一功能,就是说不希望用户在编辑框中按Enter键后出现关闭程序的情况。怎么解决这一问题? 一、原因 当用户按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用。 二、解决办法 首先建立一个基于对话框的程序。 1.直接把要接受默认OnOK的按钮设置成Default。。这样按回车的时候将自动触发这按钮事件。 2.添加虚函数OnOK(),然后在里面进行自己的处理或调用验证函数等。 阅读全文
posted @ 2006-06-30 22:18 xxsdfsdf 阅读(762) 评论(2) 推荐(0) 编辑