DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 ··· 414 415 416 417 418 419 420 421 422 ··· 474 下一页

2013年5月5日

摘要: VC中在listctrl中嵌入进度条,截图如下:其实要实现这个非常容易,以下是自绘ListCtrl的代码,首先继承CListCtrl,然后增加函数OnCustomDraw: void CProcessList::OnCustomDraw(NMHDR *pNMHDR, LRESULT *pResult) { //draw each item.set txt color,bkcolor.... NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); // Take the default processing 阅读全文
posted @ 2013-05-05 01:19 DoubleLi 阅读(413) 评论(0) 推荐(0)

摘要: 1。先来介绍REPORT类型的CListCtrl:首先使用下面的语句设置CListCtrl的style: DWORD SetExtendedStyle( DWORD dwNewStyle );其中 LVS_EX_CHECKBOXES 表示添加CheckBox LVS_EX_FULLROWSELECT 表示选择整行 LVS_EX_GRIDLINES 表示添加表格线CListCtrl固定标题列宽:CHeaderCtrl* pHeaderCtrl = (CHeaderCtrl*)m_ListCtrl.GetHeaderCtrl(); pHeaderCtrl->EnableWindow... 阅读全文
posted @ 2013-05-05 01:16 DoubleLi 阅读(1611) 评论(0) 推荐(0)

摘要: 子类化 如果你曾经在Windows环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样。如果你需要一个具有过滤特殊字符功能的Edit控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费时又很困难的任务,而子类化就可以用来做这种事情。 子类化允许你接管被子类化的窗口,使你对它有绝对的控制权。举个例子了来阐明一下:例如你需要一个只接受十六进制数字输入的文本编辑框,如果使用一个简单的Edit控件,当用户输入十六进制以外的字符时,你既不知道也无计可施。也就是说,当用户进文本框中输入字符串"zb+q*"时,如果除了拒绝接受整个字符串以外几 阅读全文
posted @ 2013-05-05 01:15 DoubleLi 阅读(278) 评论(0) 推荐(0)

摘要: MFC框架各部分指针获取方式:记住,是获取指针MFC消息流程图:string CString char* 的互相转换: string 转 CString CString.Format("%s", string.c_str()); //用c_str()比data()好 char 转 CString CString.Format("%s", char*); // 可以直接给CString赋值,不要用Format char* 转 string string s(char *); CString 转 string string s(CString.Get... 阅读全文
posted @ 2013-05-05 01:14 DoubleLi 阅读(575) 评论(0) 推荐(0)

摘要: 一:custom draw自行绘制 ClistCtrl 的列表项,可以利用列表框的 NM_CUSTOMDRAW 消息,该消息由控件向它的父窗口发送,告诉父窗口它的绘图操作。 如果绘图操作不需要父窗口参与,可以使用该控件的 ON_NOTIFY_REFLECT 宏处理它的 NM_CUSTOMDRAW 消息。 它的处理函数的参数中包含 NMHDR,在 CUSTOMDRAW 的通知下 NMHDR 可以被转换成为 NMLVCUSTOMDRAW 结构,该结构包含了列表控件中需要自绘区域的全部信息:typedef struct tagNMLVCUSTOMDRAW { NMCUSTOMDRAW nmcd; . 阅读全文
posted @ 2013-05-05 01:12 DoubleLi 阅读(4204) 评论(0) 推荐(0)

摘要: MFC 消息传递顺序LRESULT CALLBACK AfxWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam){ // special message which identifies the window as using AfxWndProc if (nMsg == WM_QUERYAFXWNDPROC) return 1; // all other messages route through message map CWnd* pWnd = CWnd::FromHandlePermanent(hWnd); ASSERT 阅读全文
posted @ 2013-05-05 01:11 DoubleLi 阅读(641) 评论(0) 推荐(0)

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

摘要: 最近因工作需求,需要自绘CTreeCtrl。由于原来从来没有自绘过,开始在网上搜索资料,查询(因此本文有些知识可能不全面,或许还有更好的办法来实现,还请大家多多指教。)经过一段时间的编写,终于写好了。在此,感谢网友bunpkin提供的实例参考。先贴上效果图,如果觉得还不错,那就继续往下看吧。如果觉得不行的,请飘过。如何你看见这句话我会很高兴,因为至少我写的东西对你还是有一点点的吸引了。在此谢过!很好,那现在让我们来说说为什么要自绘CTreeCtrl。我总结了以下2点需要自绘的情况。1.当系统自带的树形控件已不满足我们的要求时,我们需要自绘。就像上图一样我们需要在后面显示我们额外的图标。2.当你 阅读全文
posted @ 2013-05-05 01:08 DoubleLi 阅读(1252) 评论(0) 推荐(0)

摘要: 在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间需要的任意消息处理。(#add 两方面,公共控件库中没有类似的 完全重写; 只想调整公共控件功能,则可以部分修改) 另一方面,还包括一些您只想调整公共控件功能的情况。例如,我们假定您想创建一个屏蔽编辑控件,它只允许接受指定的字符。如果使用 . 阅读全文
posted @ 2013-05-05 00:50 DoubleLi 阅读(1480) 评论(1) 推荐(1)

2013年5月4日

摘要: 定时器在Windows 的程序中的作用不可忽略,也随处可见。设定一个时间间隔每0.5秒或者1秒钟刷新一次时钟,这样就可以完成一个简单的电子钟程序。在不同的编程工具中定时器的用法也不同,Visual C++中也给我们提供了实现这种功能的方法,而且方法不只一种。在窗口类中是使用定时器比较很简单,用SetTimer()设置了定时器之后,并在Class Wizard中添加了WM_TIMER消息映射后,您就可以在映射函数OnTimer()中添加代码实现,来定时完成您的任务,而且还支持任意多个定时器,这种方法大家可能都会用。但是在非窗口的类中,使用定时器就没那么简单了,在类消息映射中就找不到OnTimer 阅读全文
posted @ 2013-05-04 20:42 DoubleLi 阅读(776) 评论(0) 推荐(0)

上一页 1 ··· 414 415 416 417 418 419 420 421 422 ··· 474 下一页