摘要: 动态链接库通常不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数。只有在其他模块调用动态链接库中的函数时,它才发挥作用。实际编程时,可把完成某种功能的函数放在一个动态链接库中,提供给其他程序调用。Windows API中所有函数都包含在DL... 阅读全文
posted @ 2016-01-17 19:06 QingLiXueShi 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 凝聚性强、组织化强的类库就是Application Framework。一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework。Application Framework是一组超级的类库,能够被称为Framework者必须是其... 阅读全文
posted @ 2015-11-22 10:17 QingLiXueShi 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 1、WM_CONTEXTMENU它响应的不是鼠标右键按下消息,也不是鼠标右键弹起消息而是鼠标右键依次按下弹起后触发的消息。注意:若程序还响应了鼠标右键按下的消息OnRButtonDown,且在此响应函数中有模态对话框出现,则不会响应WM_CONTEXTMENU消息。比如,有AfxMessageBox... 阅读全文
posted @ 2015-11-05 22:45 QingLiXueShi 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、头文件说明STDAFX.H这个文件用来作为Precompile header file,其内只是载入其他的MFC头文件。应用程序通常会准备自己的头STDAFX.H。AFXWIN.H每一个Windows MFC程序都必须载入它,因为它以及它所载入的文件声明了所有的MFC类。在WINDEF.H中有C... 阅读全文
posted @ 2015-11-01 14:45 QingLiXueShi 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 7、滚动记录CRecordset提供了几个成员函数用来在记录集中滚动。当用这些函数滚动到一个新记录时,框架会自动地把新记录的内容拷贝到域数据成员中。void MoveNext( ); //前进一个记录void MovePrev( ); //后退一个记录void MoveFirst( ); //滚... 阅读全文
posted @ 2015-10-06 22:27 QingLiXueShi 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 4、SQL查询记录集的建立实际上是一个查询过程,SQL的SELECT语句用来查询数据源。在建立记录集时,CRecordset会根据一些参数构造一个SELECT语句来查询数据源,并用查询的结果创建记录集。SELECT语句的句法如下:SELECT rfx-field-list FROM table-na... 阅读全文
posted @ 2015-10-06 22:13 QingLiXueShi 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 三、CRecordset类1、IsBOF与IsEOF(1)IsBOF如果记录集没有记录,或已经向前游动到第一个记录之前,则返回非零;否则返回0。详细说明如下:1)访问Open函数之后,如果记录集没有任何记录,IsBOF返回非零。当你打开一个至少包含一个记录的记录集,第一个记录是当前记录,此时IsBO... 阅读全文
posted @ 2015-10-05 22:32 QingLiXueShi 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 一、动态创建ODBC数据源ODBC API提供了动态创建数据源的函数SQLConfigDataSource。该函数的原型如下:BOOL SQLConfigDataSource ( HWND hwndParent, WORD fRequest,LPCSTR lpszDriver, LPCSTR lps... 阅读全文
posted @ 2015-10-05 19:35 QingLiXueShi 阅读(1599) 评论(0) 推荐(0) 编辑
摘要: 1 ListNode* ReverseList(ListNode *p) { 2 if (p == NULL || p->next == NULL) 3 return p; 4 5 ListNode *pre = NULL; 6 ListNode *nex... 阅读全文
posted @ 2015-07-25 18:14 QingLiXueShi 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 解法一:递归 1 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) 2 { 3 if (root == NULL || p == NULL || q == NULL) 4 retu... 阅读全文
posted @ 2015-07-25 16:38 QingLiXueShi 阅读(200) 评论(0) 推荐(0) 编辑