MFC
圣诞老人123
这个作者很懒,什么都没留下…
展开
-
绘制动态图像(转)
<br />在实验和生产中,我们常常需要对被监测的对象进行实时监控,比如对现场的温度等环境因素进行实时数据采集,然后传输到主控制计算机,以动态曲线的方式显示出来,便于人们对现场的了解和控制。<br />2.用Visual C++实现动态曲线的绘制有4种方法。(1)使用消隐。(2)使用重绘。其中重绘按照原理的不同又分为3种。<br />2.1消隐。其实消隐的方法很简单,主要使用CDC类的成员函数SetROP2 。该函数原型为int SetROP2( int nDrawMode )。参数nDrawMode为新的原创 2010-07-30 13:47:00 · 402 阅读 · 0 评论 -
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景作者:effortsboysZYB下载源代码 摘要 用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、...原创 2010-08-09 16:49:43 · 175 阅读 · 0 评论 -
CListCtrl控件的使用
初始化: DWORD dwStyle; dwStyle = m_bzlist.GetStyle(); dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ; m_bzlist.SetExtendedStyle(dwStyle); m_bzlist.SetBkColor(RGB(0xec,0xf1,0xfd)); m...原创 2010-08-09 17:02:59 · 80 阅读 · 0 评论 -
创建CListCtrl中的排序小图标
创建CListCtrl中的排序小图标for(int i = 0; i < GetHeaderCtrl()->GetItemCount(); ++i) { HDITEM hditem = {0}; hditem.mask = HDI_BITMAP | HDI_FORMAT; VERIFY( GetHeaderCtrl()->GetItem( i, &hdi...2010-08-09 17:11:04 · 158 阅读 · 0 评论 -
扩展CListCtrl实现颜色长度改变
用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、列字体颜色、单元格字体颜色实现过程:1.表头修改 新建一个MFC类CHeaderCtrlCl,其基类为CHeaderC...原创 2010-08-09 17:34:40 · 127 阅读 · 0 评论 -
OnCreate PreCreateWindow PreSubclassWindow
OnCreate PreCreateWindow PreSubclassWindowPreCreateWindow和PreSubclassWindow是虚函数,而OnCreate是一个消息响应函数。对比对话框的2种创建方式下,这3个函数的是否调用的状态: OnCreatePreCreateWindowPre...原创 2010-08-09 17:47:47 · 210 阅读 · 0 评论 -
listctrl 重绘
common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性有什么好处。Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDR...原创 2010-08-10 10:15:18 · 154 阅读 · 0 评论 -
关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
而OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,并且没有响应消息的功能。这就是为什么你用VC成的程序代码时,在视图类只有OnDraw没有OnPaint的原因。我们一般用OnPaint维护窗口的客户区(例如我们的窗口客户区加一个背景图片),用OnDraw维护视图的客户区(例如我们通过鼠标在视图中画图)。 1.OnP...原创 2010-08-10 13:15:03 · 374 阅读 · 0 评论 -
加载位图BITMAP
m_Bitmap.LoadBitmap(IDB_BITMAP1);//加载位图从 资源ID中, m_Picture1.SetBitmap(m_Bitmap);//然 静态图片控件设置位图资源 从 m_Bitmap 中的内存对象载入!---------------------------------- m_Button1.ModifyStyle(0,BS_BITMAP);//设置按钮的风格 ...原创 2010-08-10 14:27:00 · 335 阅读 · 0 评论 -
LV_COLUMN结构体
typedef struct _LV_COLUMN {UINT mask; //屏蔽位的组合(见下面括号),表明哪些成员是有效的.int fmt; /*该列的表头和子项的标题显示格式(LVCF_FMT).可以是LVCFMT_CENTER、LVCFMT_LEFT或LVCFMT_RIGHT*/int cx; //以像素为单位的列的宽度(LVCF_FMT)LPTSTR pszText; //指向存放列表...原创 2010-08-10 14:44:03 · 1584 阅读 · 0 评论 -
VC中使用ListCtrl经验总结(1)
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第二点,这个是参照《Effec...原创 2010-08-11 17:07:04 · 107 阅读 · 0 评论 -
listctrl总结2
20. listctrl的subitem添加图标 m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES); m_list.SetItem(..); //具体参数请参考msdn 21. 在CListCtrl显示文件,并根据文件类型来显示图标 网上找到的代码,share BOOL CTest6Dlg::OnI...原创 2010-08-11 17:11:29 · 108 阅读 · 0 评论 -
clistctrl +号按钮绘制
网上有关clistctrl举不胜举,包括按钮控件的绘制也很多,但我用的时候找了好久没发现适合我用的。在这里我想介绍一种很简洁的+、-号按钮绘制的方法,实现后类似于tree中的+、-号收缩功能。以便同行以后有需要可以直接搬走使用。依附点:clistctrl用的最多的setitemdata,setitemtext,可以记录一些信息,但这里通过setitemstate来记录与修改图标的状态...原创 2010-08-11 17:18:27 · 218 阅读 · 0 评论 -
帖BitMap
void CEx_14View::OnDraw(CDC* pDC){ CEx_14Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);////////////////////////////////////////////////////////////画bitmap图 CBitmap bitmap; ...原创 2010-08-24 09:42:43 · 113 阅读 · 0 评论 -
CHeaderCtrl用法
CListCtrl的表头可以单独使用,类CHeaderCtrl封装了这一功能.1. 构造表头 和所有控件一样,都通过Create函数创建对象,Create函数的原型如下: virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID) 参数说明: ...原创 2010-08-09 15:47:05 · 195 阅读 · 0 评论 -
CListCtrl::SortItems的用法:
CListCtrl::SortItems的用法:(一)SortItems使用在哪?CListCtrl::SortItems的原型是:BOOL SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData );其中1)第一个参数pfnCompare为回调函数,形式为:int CALLBACK CompareFunc(LPARAM lParam1, LPAR...原创 2010-08-09 12:37:49 · 219 阅读 · 0 评论 -
WIN32_FIND_DATA结构详解
<br />WIN32_FIND_DATA结构描述了一个由FindFirstFile, FindFirstFileEx, 或FindNextFile函数查找到的文件信息,<br />typedef struct _WIN32_FIND_DATA { <br /><br /> DWORD dwFileAttributes; //文件属性 <br /><br /> FILETIME ftCreationTime; // 文件创建时间 <br /><br /> FILETIME ftLastAcces转载 2010-08-04 15:49:00 · 8099 阅读 · 2 评论 -
SHFILEINFO 结构
SHFILEINFO Structure包含关于一个文件对象的信息语法typedef struct _SHFILEINFO {HICON hIcon;int iIcon;DWORD dwAttributes;TCHAR szDisplayName[MAX_PATH];TCHAR szTypeName[80];} SHFILEINFO;成员hIcon一个文件图标的句柄。如果不再需要这个句柄,应该使用DestroyIcon函数来销毁这个句柄。iIcon系统图片列表中图标图片的索引。dwAttributes一个数转载 2010-08-04 15:57:00 · 1309 阅读 · 0 评论 -
关于获取本地磁盘盘符
<br />关于获取本地磁盘盘符<br />有四个基本的函数:GetLogicalDrives, GetLogicalDriveStrings, GetDriveType 和 GetVolumeInformation。第五个是 SetVolumeLabel,如果你愿意,可以用它设置卷标。<br />第一个函数,GetLogicalDrives,返回一个DWORD的位掩码(bitmask)值,以告知驱动盘符。“0”表示是驱动器A,“1”表示驱动器B,依次类推。<br />10110 10001 11000 0转载 2010-08-04 13:57:00 · 928 阅读 · 0 评论 -
WinAPI: GetVolumeInformation - 读取文件系统信息
WinAPI: GetVolumeInformation - 读取文件系统信息//声明:GetVolumeInformation( lpRootPathName: PChar; {磁盘驱动器代码字符串} lpVolumeNameBuffer: PChar; {磁盘驱动器卷标名称} nVolumeNameSize: DWORD; {磁盘驱动器卷标名称长度} lpVolumeSerialNumber: PDWO转载 2010-08-04 15:14:00 · 519 阅读 · 0 评论 -
CTRLList重绘
<br />common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性有什么好处。<br />Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDRAW),就可以让Windows为你干活了,你就不用被逼去处理"重绘过程"中所有的脏活了。转载 2010-08-10 10:20:00 · 807 阅读 · 0 评论 -
搞清楚VC++中的char,wchar_t,TCHAR (ZT)
<br />大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱。为了统一,有必要把来龙去脉搞清楚。 为了搞清这些函数,就必须理请几种字符类型的写法。<br /> char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在<string.h>里: typedef unsigned short wchar_t;不能使用类似strcpy这样的ANSI C字符串函数来处理wchar_t字符串转载 2010-11-17 10:03:00 · 515 阅读 · 0 评论 -
获取系统菜单图标
ListView简单实用1.首先定义一个某个文件结构信息SHFILEINFO info;2.调用SHGetFileInfo函数来获取文件信息3.将文件信息中的图标信息放入定义好的imageList里面 /**具体代码m_tilLarge.Create(32,32,ILC_COLOR32,10,30); //定义图标所存储的CImageListm_tLPListCtrl-&g...2010-08-05 11:17:45 · 140 阅读 · 0 评论 -
ListView详解
[zz] CListCtrl使用详解 以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 ...原创 2010-08-05 11:19:44 · 190 阅读 · 0 评论 -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MB...原创 2010-08-05 13:33:46 · 104 阅读 · 0 评论 -
MFC一些函数区别
GetMessagePos GetCursorPos的区别 The GetMessagePos function retrieves the cursor position for the last message retrieved by the GetMessage function. The GetCursorPos function retrieves the cursor...原创 2010-08-05 13:43:48 · 128 阅读 · 0 评论 -
文档/视图结构中的各个部分是如何联系到一起的
文档/视图结构是MFC中最有特色而又有难度的部分,在这当中涉及了应用、文档模板、文档、视图、MDI框架窗口、MDI子窗口等不同的对象,如果不了解这些部分之间如何关联的话,就可能犯错误,也就很难编出有水平的文档/视图程序。比如我在初学VC编程的时候,为应用程序添加了两个文档模板,两个模板公用一个文档类,只是视图不一样,期望当一个模板的文档的视图改变了文档后,调用UpdateAllViews后也能更新...原创 2010-08-05 15:39:51 · 132 阅读 · 0 评论 -
剪贴板和OLE拖放
一、传统剪贴板 传统剪贴板的形式非常的简单,其基本思路是当复制时程序复制一个数据副本给全局内存对象,打开剪贴板并且清空剪贴板当中的数据,将全局内存对象复制给剪贴板最后关闭剪贴板;从剪贴板中获取数据的顺序是打开剪贴板获取全局内存对象,锁定全局内存对象后从中复制数据,解锁内存对象并且关闭剪贴板。需要注意的是剪贴板在某个时刻只能被一个程序所打开,如果试图打开一个已经被其他程序打...原创 2010-08-05 16:35:15 · 404 阅读 · 0 评论 -
树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
TVINSERTSTRUCT包含添加新项到树形视控件所使用的信息。这个结构被TVM_INSERTITEM消息使用。这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命名习惯重命名了。typedef struct tagTVINSERTSTRUCT { HTREEITEM hParent; HTREEITEM hInsertAfter;#if (_WIN32_IE...原创 2010-08-05 18:11:42 · 110 阅读 · 0 评论 -
自己写的一段customerDraw
void CNewReportPage::OnNMCustomdrawRightbottomModel2List(NMHDR *pNMHDR, LRESULT *pResult){ LPNMLVCUSTOMDRAW pLVCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR); int nItem = static_cast<in...原创 2010-08-24 16:20:37 · 143 阅读 · 0 评论