自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

转载 Dlg访问

Dialog DlgA{public:int Num;};Class DlgB{DlgA a;int GetDlgAInfo(){return a.Num;}}

2011-08-05 15:43:06 684

转载 HDN_ENDTRACK

近期把List Control扩展成Grid,参考了两篇关于SubItem Selection的文章,一篇来自Piotr Szewczyk.. 采用NM_CUSTOMDRAW方法,另一篇来自Muhammad Azam.,采用LVS_OWNERDRAWFIXED。我个人偏好于NM_CUSTOMDRAW,因为NM_CUSTOMDRAW可以控制是否自绘,可以控制自绘区域(CDDS_ITEMPREPAIN

2011-06-15 21:34:00 1530

转载 duoview1

首先在H文件有如下声明:<br />class CMultiViewApp : public CWinApp<br />{<br />public:<br />       CView* m_pFirstView;<br />       CView* m_pOtherView;<br />       int m_currentView;<br />       CView* m_pView2;<br />       CView* m_pView1;<br />       CMultiViewApp(

2011-04-26 19:12:00 721

转载 duoview

<br />1--首先创建想切换的两个视图类(view类)<br />比如:<br />class CTestView1 : public CFormView<br />{<br />//....<br />}<br />class CTestView2 : public CView<br />{<br />//....<br />}<br />2--然后在xx.cpp文件中(XX代表工程名)即CxxApp类的cpp文件中<br />包含切换的两个类的头文件,<br />如:<br />#include "

2011-04-26 19:09:00 750

转载 15551

<br />BCG注册表清除:<br />第一次在CXXXApp::ExitInstance()  加入CleanState(),<br />运行一次<br />接着注释掉,再在OnInitInstance加入m_bSaveState=FALSE<br /> <br />估计在BCG控件要写注册表的时候,它自己的写入注册表函数会判断m_bSaveState <br />1.VC2008集成了BCGControlBar的相关功能,用wizard生成的话如果选与BCGControlBar有关的性能,如预定皮肤,

2011-04-07 19:43:00 1334

转载 消息

<br />在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。<br />窗口消息(Window Message)一般与窗口的内部运作有关,如创建窗口、绘制窗口和销毁窗<br />口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。<br />若需要窗口消息的完全的列表,请参考M F C文档。<br />命令消息<br />命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时,命令消息产生,<br />并被发送到能处理该请求的类对象(如,装载文件、编辑文本和保存选项等)。<

2011-03-08 19:44:00 625

转载 CListCtrl, 重载DrawItem函数

<br />  CListCtrl, 重载DrawItem函数 定义你自己的类,继承CListCtrl类,然后重载DrawItem函数,并保证在属性中有LVS_OWNERDRAWFIXED风格.<br /><br /><br /><br /> exp:<br /><br />CListCtrlExt m_ListCtrl;<br /><br />m_ListCtrl.ModifyStyle(0,LVS_OWNERDRAWFIXED,0);<br /><br /><br /

2011-02-23 22:23:00 2773

转载 DrawItem

<br />void   CListCtrlEx::DrawItem(LPDRAWITEMSTRUCT   lpDrawItemStruct)<br />{<br />LPDRAWITEMSTRUCT   lpDIS   =   lpDrawItemStruct;<br />CDC* pDC = CDC::FromHandle(lpDIS->hDC);<br /><br />LVITEM lvi = {0};<br />lvi.mask = LVIF_STATE;//|LVIF_IMAG

2011-02-23 22:22:00 2295

转载 check1

在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动<br />一些代码2009-09-23 08:11:49阅读98评论0  字号:大中小 订阅<br />void CMyDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) <br />{<br />// TODO: Add your control notification handler code here<br />NM_TREEVIEW* pHdr = (NM_TREEVIEW*)pNMH

2011-02-20 18:34:00 641

转载 check

<br />1.在对话框中添加CTreeCtrl控件并勾选Check Boxes选项,为CTreeCtrl控件添加CTreeCtrl变量m_tree;<br />2.为CTreeCtrl控件添加NM_CLICK消息响应函数OnClickTree();代码如下:<br />OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)  <br />{<br />    CPoint point;<br />    UINT uFlag;   //接收有关点击测试的信息的整数<br

2011-02-20 18:32:00 602

转载 剪贴板

<br /><br />一、传统剪贴板<br />  传统剪贴板的形式非常的简单,其基本思路是当复制时程序复制一个数据副本给全局内存对象,打开剪贴板并且清空剪贴板当中的数据,将全局内存对象复制给剪贴板最后关闭剪贴板;从剪贴板中获取数据的顺序是打开剪贴板获取全局内存对象,锁定全局内存对象后从中复制数据,解锁内存对象并且关闭剪贴板。需要注意的是 剪贴板在某个时刻只能被一个程序所打开,如果试图打开一个已经被其他程序打开的剪贴板就会导致API函数调用返回NULL值,由于这个机制要求所有程序在 打开剪贴板

2011-02-11 22:51:00 1030

转载 COleDataObject

COleDataObject  COleDataObject没有基类。   COleDataObject用于从一个嵌入OLE项,或从剪贴板中通过拖放操作,以不同的数据格式存取数据时的数据传输。这类数据传输具有一个数据源和一个目的地。数据源是实现为一个COleDataSource类。无论目的地应用中是否有存放在内的数据,或从剪贴板中执行一次粘贴操作,都必须建立COleDataObject类的一个对象。   该类使你能够判定数据是否以一种指定的格式存在。可以列举可用的数据格式或检查一个给定的格式是否可用,然后用

2011-02-11 20:41:00 972

转载 OLE剪贴板学习心得

OLE剪贴板学习心得<br />MFC对OLE剪贴板的支持主要集中在两个类上,分别是<br />COleDataSource,COleDataObject。<br />其中,COleDataSource作为操作者,而COleDataObject作为消费者,换句话说,用户需要使用COleDataSource把数据放到OLE剪贴板上,而使用COleDataObject把它取回。<br /><br />将保存在全局内存中的项目放置在OLE剪贴板上,需要进行如下步骤:<br />1.在堆上(而不是在堆栈上)创建CO

2011-02-11 20:38:00 2483

转载 剪贴板

<br /><br />一、传统剪贴板<br />     传统剪贴板的形式非常的简单,其基本思路是当复制时程序复制一个数据副本给全局内存对象,打开剪贴板并且清空剪贴板当中的数据,将全局内存对象复制给剪贴板最后关闭剪贴板;从剪贴板中获取数据的顺序是打开剪贴板获取全局内存对象,锁定全局内存对象后从中复制数据,解锁内存对象并且关闭剪贴板。需要注意的是 剪贴板在某个时刻只能被一个程序所打开,如果试图打开一个已经被其他程序打开的剪贴板就会导致API函数调用返回NULL值,由于这个机制要求所有程序在 打开

2011-02-10 21:17:00 868

转载 实现拖放

<br />Drag & Drop 全解析      <br />  <br />一、基本概念<br />拖放,是指用鼠标拖动的方法,在不同程序的窗口之间、同一个程序的不同窗口之间或同一程序同一窗口的不同控件之间,进行移动、复制和粘贴等操作的技术。拖放操作是在操作系统的帮助下完成的。被拖动的对象首先向操作系统注册它使用的数据格式,并按指定的数据格式提供数据,拖放操作结束时,接收拖放的窗口按指定的数据格式提取有关数据,并根据提取的数据生成相应的对象。<br />二、两种拖放方式<b

2011-02-09 21:31:00 1455

转载 得到1

<br />// HitTestEx   - Determine the row index and column index for a point// Returns     - the row index or -1 if point is not over a row// point       - point to be tested.// col         - to hold the column indexint CMyListCtrl::HitTestEx(CPoint

2011-01-29 21:51:00 838

转载 得到0

<br />// HitTestEx   - Determine the row index and column index for a point// Returns     - the row index or -1 if point is not over a row// point       - point to be tested.// col         - to hold the column index //考虑到滚动条的情况int CMyListCtrl::HitT

2011-01-29 21:49:00 790

转载 2704

<br /><br />GetFocus<br /> <br /> <br />返回有输入焦点的窗口,键盘输入发送给这个窗口,整个系统只有一个窗口有输入焦点.<br /> <br />GetActiveWindow()是活动窗口,不一定有输入焦点,而且每个线程就有一个活动窗口。<br /> <br />GetFocus()   得到的肯定是   ActiveWindow,但是GetActiveWindow()的窗口不一定是有输入焦点的窗口。<br /> <br />返回值:<br />如果活动并且无窗口的控

2011-01-27 23:11:00 834

转载 2703

<br /><br />1.列表视图控件:<br /><br />ClistCtrl类的用法:<br /> 1常规操作函数:它们可以完成向列表视图中插入新<br />条目或新列等操作。<br />ISubItem-指定条目子索引项<br />BOOLDeleteAllItems()删除列表控件中所有条目<br />intInsertColumn(int nCol,const LVCOLUMN * pColum)插入新列操作成功返回新列索引<br /> nCol-----指定新列索引。<br /> p

2011-01-27 23:09:00 823

转载 2703

<br /><br />1.列表视图控件:<br /><br />ClistCtrl类的用法:<br /> 1常规操作函数:它们可以完成向列表视图中插入新<br />条目或新列等操作。<br />ISubItem-指定条目子索引项<br />BOOLDeleteAllItems()删除列表控件中所有条目<br />intInsertColumn(int nCol,const LVCOLUMN * pColum)插入新列操作成功返回新列索引<br /> nCol-----指定新列索引。<br /> p

2011-01-27 23:07:00 957

转载 2702

<br /><br />GetDlgItem有两种形式,1.GetDlgItem(int nID);2. GetDlgItem(int nID, HWND* phWnd)。<br /><br />winocc.cpp文件里,GetDlgItem的原型为:<br />CWnd* CWnd::GetDlgItem(int nID) const<br />{<br />ASSERT(::IsWindow(m_hWnd));<br /><br />if (m_pCtrlCont == NULL)

2011-01-27 23:03:00 768

转载 2701

<br /><br />给你一个思路。<br />单击的时候取得cell的矩形;<br />new   一个CComboBox(或者预先建立好,隐藏),移动到矩形中,显示。<br />单击其它地方的时候把选中的值显示在cell中delete<br /> <br />做过添加Eidt框的,是重载CListCtrl,在其OnCreate事件那里预先创建一个CEdit,需要的时候再把Eidt框move到那里再显示,不需要时就Hide<br /> <br /> <br /> <br />CListCtrl *p

2011-01-27 23:02:00 558

转载 全要

<br /><br />GetFocus<br /> <br /> <br />返回有输入焦点的窗口,键盘输入发送给这个窗口,整个系统只有一个窗口有输入焦点.<br /> <br />GetActiveWindow()是活动窗口,不一定有输入焦点,而且每个线程就有一个活动窗口。<br /> <br />GetFocus()   得到的肯定是   ActiveWindow,但是GetActiveWindow()的窗口不一定是有输入焦点的窗口。<br /> <br />返回值:<br />如果活动并且无窗口的控

2011-01-26 22:55:00 997

转载 学习2

<br /><br />该函数获得有关指定窗口的信息,<br />函数也获得在额外窗口内存中指定偏移地址的32位长整型值。<br />LONG   GetWindowLong(HWND   hWnd,int   nindex); <br />hwnd:窗口句柄及间接给出的窗口所属的窗口类。<br /><br />函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。<br /><br />        函数原型:LONG   GetWindowLon

2011-01-26 00:09:00 378

转载 SetFocus

<br />函数功能:该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。<br />  函数原型:HWND SetFocus(HWND hWnd)。  参数:  hWnd:接收键盘输入的窗口指针。若该参数为NULL,则击键被忽略。  返回值:若函数调用成功,则返回原先拥有键盘焦点的窗口句柄。若hWnd参数无效或窗口未与调用线程的消息队列相关,则返回值为NULL。若要获得更多错误信息,可以调用GetLastError函数。  备注:SetFocus函数发送WM_KILLF

2011-01-25 23:17:00 603

转载 学习1

<br /><br />该函数获得有关指定窗口的信息,<br />函数也获得在额外窗口内存中指定偏移地址的32位长整型值。<br />LONG   GetWindowLong(HWND   hWnd,int   nindex); <br />hwnd:窗口句柄及间接给出的窗口所属的窗口类。<br /><br />函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。<br /><br />        函数原型:LONG   GetWindowLon

2011-01-25 23:09:00 341

转载 学习0

<br /><br />2.关于listcontrol的高级应用---条目编辑<br />http://www.fa39.com/Article/c/200610/1952.html<br />论坛中搜索一下,你会发现不少类似的提问:我如何编辑list control的条目?如何直接编辑list control...等等;list control可用来做数据库表的视图,十分有用.<br />但报表风格的list control只能编辑第一列,其余的该死的微软没

2011-01-25 23:06:00 889

转载 ImageList00

<br />1.综述<br />在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。<br />图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式。实际上,所有的在同一个图象列

2011-01-17 23:03:00 901

转载 ImageList

<br />例如:<br />CImageList m_imageList;<br />//创建CImageList对象<br />m_imageList.Create(16, 16, ILC_COLOR8, 0, 4); <br />//加载图标<br />m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_ROOT));<br /> <br />    然后该CTreeCtrl了,这是一个树形列表控件,提供了分层级结构显示数据的功能。这个控件有可视化的界面,可以

2011-01-17 22:57:00 7329

转载 CImageList

<br /><br />CImageList<br />百科名片<br />图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。<br />数据成员<br />m_hImage

2011-01-16 22:05:00 13496

转载 列表控制的主要功能

<br /><br />(一)列表控制的主要功能 <br />  列表控制和视(List Control&View)主要用来以各种方式显示一组数据记录供用户进行各种操作,Windows98/95中资源管理器中的“查看”标签下的 “大图标|小图标|列表|详细资源”就是一个非常好的典型应用。列表中的记录可以包括多个数据项,也可以包括表示数据内容的大小图标,用来表示数据记录的 各种属性。<br />  列表控制提供了对Windows列表功能操作的基本方法,而使用列表视的视函数可以对列表

2011-01-16 22:03:00 856

转载 CListCtrl

<br /><br />在 VC中使用控件一直是件让我头痛的事件,从控件的创建到控件的操作管理,都得写一大堆代码,相比于Delphi/VB,实在是麻烦多了。其实在之前学习 SDK的时候,就有想过专门花点儿时间来学习VC中控件的使用,但一直没空。最近准备写一个小工具,要用到ListCtrl控件,所以又不得不好好的恶补一翻。<br /><br />我是在MFC的对话框模式下使用CListCtrl控件的,其实不管在SDK或文档/视图模式下,VC控件的使用都差不多,下面来好好的写写CListCtrl控件的使用笔记。

2011-01-16 21:59:00 1488

转载 CListCtrl控件中InsertItem和SettItemtext函数的用法简介

<br />        本人初次用CListCtrl控件的时候,对于 InsertItem和SetrtItemtext两个函数的作用始终不是太懂,比如如果不先调用InsertItem这个函数,后面的InsertItemtext函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路.<br />        InsertItem在MSDN中的函数原型如下<br />        intInsertItem(constLVITEM*p

2011-01-16 21:57:00 1253

转载 CTreectrl

<br />1.要在stdafx.h中包含#include 2.不要直接用CTreeView,应该继承一个类,直接用的话没法重写函数什么的3.View类有个OnInitUpdate类似于对话框的OnInitDialog(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结

2011-01-16 21:54:00 2456

转载 CListView

<br />一个程序从宏观上来说,不外乎就是输入->处理->输出,输入与输出对一个程序来说至关重要。前段时间给可视化平台换脸的时候,平台的输出不仅包括直观的图像显示,用户还希望直观地得到每帧图像的一些相关的参数信息、统计信息等,这时候我就选择在CListView中滚动地显示相关信息,并将窗口进行切分,将CListView的窗口放在整个主窗口的最底端,在需要的时候显示,不需要的时候隐藏。但是,我对CListView的用法不是很熟悉,在查MSDN和从网上查相关用法的时候,要不就是零星地介绍,要不就是只介绍CLi

2011-01-16 21:52:00 692

转载 VC控件ListCtrl的使用方法总汇

<br />以下未经说明,listctrl默认view 风格为report<br />-------------------------------------------------------------------------------<br />1. CListCtrl 风格 <br />       LVS_ICON: 为每个item显示大图标 <br />       LVS_SMALLICON: 为每个item显示小图标 <br />   

2011-01-16 21:48:00 687 1

转载 加入图片

<br /><br />步骤简要如下:<br />1.创建ClmageList对象,指定图片的宽度和高度<br />2.将CImageList对象传递给CListCtrl对象<br />3.ClistCtrl增加item时,将图片ID和文字一起传入<br />具体代码如下:<br />ListImage.cpp代码如下<br />// ListImage.cpp : implementation file<br />//<br />#include "stdafx.h"<br />

2011-01-16 21:44:00 1485

转载 Splitter3

<br />摘要 本文以MFC(Microsoft Foundation Class Library)的CsplitterWnd类别为基础,通过对单文档视窗的静态分裂原理进行分析,介绍混合静态分裂视窗的实现方法,并深入阐述子视窗的视图动态切换技术。<br /><br />关键词 静态分裂视窗 动态切换视图 混合分裂视窗<br /><br />前言<br /><br />  在许多视窗应用软件中,通常要在屏幕上同时显示若干个子视窗,以显示同一个文档的不同部分,或者是在每个视窗中分别显示不同文档的内容。为了实现

2011-01-12 21:05:00 512

转载 Splitter2

<br />一、关于CSplitterWnd类<br /><br />  我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中<br />窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现<br />窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种<br />特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被切分后用户可以使用鼠标移动<br /

2011-01-12 21:03:00 602

转载 Splitter1

<br />1.csplitterwnd 类<br />  提供分离窗口的功能,是一个窗口包含多个方格。<br />  类成员<br />CSplitterWnd类成员<br />  构造 CSplitterWnd 构造一个CSplitterWnd对象<br />Create 创建一个动态的分隔器窗口并将它与一个CSplitterWnd对象连接<br />CreateStatic 创建一个静态的分隔器窗口并将它与一个CSplitterWnd对象连接<br />CreateView 在一个分隔器窗口中创建一个

2011-01-12 20:59:00 871

一线架构师实践指南

作者是温昱,本书为扫描版,清晰度完全可以 分4个部分介绍架构师,感觉不详细,免费的

2012-10-09

软件工程—实践者的研究方法

作者是Roger S.Pressman 分五部分来介绍和学习软件工程,第五部分为高级课题:包括了形式化方法、软件复用、再工程、客户/服务器软件工程、计算机辅助软件工程

2012-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除