![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
文章平均质量分 86
SpriteLW
无
展开
-
AFX_MANAGE_STATE(AfxGetStaticModuleState())
AFX_MANAGE_STATE(AfxGetStaticModuleState());//用于模块切换时的状态保护,1.AfxGetStaticModuleState()指向当前模块状态;2.当前函数调用结束后原模块的状态自动被恢复;3.用于DLL中所调用MFC函数、类、资源时的模块状态切换 昨天在dll里面调用对话框的domodal时候遇到的问题,错误说是afxwin1.i转载 2006-07-16 11:13:00 · 2496 阅读 · 0 评论 -
报表式CListCtrl的使用详解
创建图形列表并和CListCtrl关联: m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192)); m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) ); m_caller_list.SetImageList( &m_image_list, LVSIL_SMALL);为报表添转载 2006-07-18 13:30:00 · 2755 阅读 · 1 评论 -
在ListCtrl中进行排序(2)
排序问题在我的另一个程序中,需要通过CListCtrl控件显示日期数据,希望更具日期的升序显示,如图:要将排序功能加入到CListCtrl控件,首先必须从CListCtrl继承,然后将排序方法加入到继承的类中。这里我想到了两种写法:1. 创建一个虚拟放方法在".h"文件中:class CSortableListCtrl:CListCtrl{ virtual void SortA转载 2006-07-18 13:57:00 · 3019 阅读 · 1 评论 -
继续学习MFC——第11章多线程技术
要知道MFC类一般不是线程安全的,这点要时刻牢记。 书中前两个小节简单说了一下进程和线程:对于Windows平台,进程简而言之就是一个应用程序,线程实际上是处理器寄存器的一个映像。线程包括应用程序在哪儿执行代码和线程的本地变量等信息。进程可以有多个线程,共享该进程中的全局变量和资源,但是拥有各自的执行点和本地变量。 MFC里面用CWinThread对象表示所有线程。C转载 2006-07-16 11:32:00 · 1988 阅读 · 0 评论 -
在ListCtrl中进行排序(1)
在ListCtrl中进行排序 列表控件(CListCtrl)的顶部有一排按钮,用户可以通过选择不同的列来对记录进行排序。但是 CListCtrl并没有自动排序的功能,我们需要自己添加一个用于排序的回调函数来比较两个数据的大小,此外还需要响应排序按钮被点击的消息。下面讲述一下具体的做法。CListCtrl提供了用于排序的函数,函数原型为:BOOL CListCtrl::SortItems(转载 2006-07-18 13:37:00 · 1651 阅读 · 0 评论 -
让CListCtrl的SubItem也具有编辑功能
要重载一个文本框,然后在LVN_BEGINLABELEDIT时改变文本框位置。CInEdit m_InEdit; if( ( GetStyle() & LVS_TYPEMASK ) == LVS_REPORT && ( m_nEditSubItem != 0 ) ) { HWND hwndEdit; CRect rtBound;转载 2006-07-18 13:40:00 · 1897 阅读 · 0 评论 -
SubItem Selection in List Control改进版
近期把List Control扩展成Grid,参考了两篇关于SubItem Selection的文章,一篇来自Piotr Szewczyk.. 采用NM_CUSTOMDRAW方法,另一篇来自Muhammad Azam.,采用LVS_OWNERDRAWFIXED。我个人偏好于NM_CUSTOMDRAW,因为NM_CUSTOMDRAW可以控制是否自绘,可以控制自绘区域(CDDS_ITEMPREPAIN原创 2006-07-22 00:54:00 · 2574 阅读 · 0 评论