haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 小学数学小学数学

知识点

发布时间:2013-09-18 18:02:05  

属性中的Border中的各个属性,分别表示什么

Dialog Frame

WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE

Thin

比Dialog Frame缺少一个扩展属性WS_EX_DLGMODALFRAME

None

比Dialog Frame缺少WS_CAPTION | DS_MODALFRAME

比Dialog Frame缺少扩展属性WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE

Resizing

比Dialog Frame多一个属性WS_THICKFRAME:

Creates a window with a thick frame that can be used to size the window. (可调整窗口大小)

Button里面的属性owner draw,就是自己画按钮,是按钮变得多姿多彩

删除一个导入的ICON,按键盘的delete按钮

CWnd* AfxGetMainWnd( );

使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法。 就是获得应用程序主窗口的指针,AfxGetMainWnd()-> m_hWnd是主窗口的句柄。

隐藏工具栏和菜单栏

void CMainFrame::HideMenuStatusToolBar(BOOL bflag)//跟CStationSystemAppView里面的OnInitialUpdate函数联系起来一块用才能隐藏

{

if (bflag)

{

SetMenu(NULL);

DrawMenuBar();

ShowControlBar(&m_wndStatusBar,false,false);

ShowControlBar(&m_wndToolBar,false,false);

}

else

{

ShowControlBar(&m_wndStatusBar,false,false);

ShowControlBar(&m_wndToolBar,false,false);

}

}

Public:

CMainFrame *m_pMainFrame;

在C_VIEW里的OnInitialUpdate里加上这两句

m_pMainFrame=(CMainFrame *)AfxGetMainWnd();//这句也要加上

m_pMainFrame->HideMenuStatusToolBar(true); //取消对话框中的菜单栏和状态栏

SetMenu用法

SetMenu-函数功能

函数功能:该函数分配一个到。

函数原型:BOOL SetMenu(HWND hWnd,HMENU hMenu);

参数:

hWnd:菜单被分配到其中的窗口的句柄。

HMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单被删除。 SetMenu-返回值

返回值:如果函数调用成功,返回非零值;如果函数调用失败,是零。若想获得更多的错误信息,请调用GetLaSError函数。

备注:窗口被重画来反映菜单的修改。函数SetMenu替换原来的菜单(如果存在),但并不将其销毁。应用程序必须调用函数DestroyMenu来销毁菜单。 DrawMenuBar

为指定的窗口重画菜单。用api函数改变一个窗口菜单的内容时,就要用到这个函数

ShowControlBar()可以用来控制是否显示该工具栏

Invalidate()函数的作用是使整个窗口客户区无效,窗口客户无效即需要重绘,这时Window系统会发送一WM_PAINT消息放在应用程序的消息队列中,的很低,所以不会立即重绘。

如果需要立即重绘,那么就使用UpdateWindow( )函数,该函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。

EnableWindow(false)表示禁用一个按钮,默认是TRUE

OnPaint是的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创建CPaintDC类的DC对象来响应该消息并调用视图的OnDraw成员函数.OnPaint最后也要调用OnDraw,因此一般在OnDraw函数中进行绘制。

ONERASEBKGND实现双缓冲绘图,擦除背景的。

CreateCompatibleDC

该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联。 BitBlt

该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。

函数原型

BOOL BitBlt(HDC hdcDest,

int nXDest,

int nYDest,

int nWidth,

int nHeight,

HDC hdcSrc,

int nXSrc,

int nYSrc,

DWORD dwRop);

编辑本段参数

hdcDest:指向目标设备环境的句柄。

nXDest:指定目标矩形区域左上角的X轴逻辑坐标。

nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。

nWidth:指定源和目标矩形区域的逻辑宽度。

nHeight:指定源和目标矩形区域的逻辑高度。

hdcSrc:指向源设备环境的句柄。

nXSrc:指定源矩形区域左上角的X轴逻辑坐标。

nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。

dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。

下面列出了一些常见的光栅操作代码:

BLACKNESS:表示使用与物理的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。

DSTINVERT:表示使目标矩形区域颜色取反。

MERGECOPY:表示使用型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

MERGEPAINT:通过使用型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。

NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。

NOTSRCERASE:使用类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。

PATCOPY:将特定的模式拷贝到目标位图上。

PATPAINT:通过使用OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。 PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。 SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。 SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。

SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。

SRCINVERT:通过使用型的XOR(异或)操作符将源和目标矩形区域的颜色合并。 SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。

WHITENESS:使用与物理中索引1有关的目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。

dwRop Values

From wingdi.h:

#define BLACKNESS 0x42

#define DSTINVERT 0x550009

#define MERGECOPY 0xC000CA

#define MERGEPAINT 0xBB0226

#define NOTSRCCOPY 0x330008

#define NOTSRCERASE 0x1100A6

#define PATCOPY 0xF00021

#define PATINVERT 0x5A0049

#define PATPAINT 0xFB0A09

#define SRCAND 0x8800C6

#define SRCCOPY 0xCC0020

#define SRCERASE 0x440328

#define SRCINVERT 0x660046

#define SRCPAINT 0xEE0086

#define WHITENESS 0xFF0062

加载zhujiemian那页图

void CSubstationSystemView::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

// Do not call CFormView::OnPaint() for painting messages

CDC memdc;

CRect rect;

GetWindowRect(&rect);//

函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。

CBitmap bitmap,*oldbitmap;

oldbitmap=memdc.SelectObject(&bitmap);

dc.BitBlt(0,0,rect.right,rect.bottom,&memdc,0,0,SRCCOPY);

memdc.SelectObject(oldbitmap);

ReleaseDC(&memdc);

}

一定要加上这些//这样照片才能显示出来

void CSubstationSystemView::DoDataExchange(CDataExchange* pDX)

{

CFormView::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CSubstationSystemView)

// NOTE: the ClassWizard will add DDX and DDV calls here

DDX_Control(pDX, IDC_BTN_SANWEI, m_sanwei);

DDX_Control(pDX, IDC_BTN_LIANXI, m_lianxi);

DDX_Control(pDX, IDC_BTN_KAOSHI, m_kaoshi);

DDX_Control(pDX, IDC_BTN_XUEXI, m_xuexi);

DDX_Control(pDX, IDC_BTN_GUANLI, m_guanli);

DDX_Control(pDX, IDC_BUTTON1, m_btn1);

DDX_Control(pDX, IDC_BUTTON2, m_btn2);

DDX_Control(pDX, IDC_BUTTON3, m_btn3);

DDX_Control(pDX, IDC_BUTTON4, m_btn4);

DDX_Control(pDX, IDC_BUTTON5, m_btn5);

DDX_Control(pDX, IDC_BUTTON6, m_btn6);

DDX_Control(pDX, IDC_BUTTON7, m_btn7);

DDX_Control(pDX, IDC_BUTTON8, m_btn8);

DDX_Control(pDX, IDC_BUTTON9, m_btn9);

DDX_Control(pDX, IDC_BUTTON10, m_btn10);

DDX_Control(pDX, IDC_BUTTON11, m_btn11);

DDX_Control(pDX, IDC_BUTTON12, m_btn12);

DDX_Control(pDX, IDC_BUTTON13, m_btn13);

DDX_Control(pDX, IDC_BUTTON14, m_btn14);

DDX_Control(pDX, IDC_BUTTON15, m_btn15);//一定要加上这些东西

//}}AFX_DATA_MAP

}

可以添加CButton类型的变量,如果是需要CBitmapButton或者CImageButton类型,则进行修改,在dodatachange中上述代码会自动添加上,所以说要在Classward中添加按钮的成员变量

LoadBitmaps的用法

CBitmapButton::LoadBitmaps BOOL LoadBitmaps( LPCTSTR lpszBitmapResource, LPCTSTR

lpszBitmapResourceSel = NULL, LPCTSTR lpszBitmapResourceFocus = NULL, LPCTSTR lpszBitmapResourceDisabled = NULL );

BOOL LoadBitmaps( UINT nIDBitmapResource, UINT nIDBitmapResourceSel = 0, UINT nIDBitmapResourceFocus = 0, UINT nIDBitmapResourceDisabled = 0 );

Return Value

Nonzero if successful; otherwise 0. EnableWindow

指定是否要启用或禁用窗口。如果此参数为true,则窗口已启用。如果该参数为FALSE,则窗口被禁用。

Invalidate

指定更新区域内的背景是否是要被擦除。

CSize类

类CSize是对Windows结构SIZE的封装,凡是能用SIZE结构的地方都可以用CSize代替。 结构SIZE表示一个矩形的长度和宽度,其定义为:

typedef struct tagSIZE{

LONG cx;

LONG cy;

} SIZE;

其中 cx、cy分别是宽度和高度。

CScrollView::SetScrollSizes

这种方法称为视图进行更新时。 若要调整滚动特性的 OnUpdate 方法的重写中调用它。 例如此方法很有用,最初显示文档时,或当它更改大小。

void SetScrollSizes( int nMapMode, SIZE sizeTotal, const SIZE& sizePage = sizeDefault, const SIZE& sizeLine = sizeDefault );

该函数用于对滚动条进行设置。

因为滚动条是附着在窗口之上的,而且它是用来对显示的文档进行操作的,因而我们应该在窗口和文档都创建完毕、窗口尚未显示之前对滚动条进行设置。因此可以在OnInitialUpdate(该函数调用OnUpdate)中或OnUpdate函数中调用SetScrollSizes完成对滚动条的设置。

当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,

CWnd::GetParentFrame

呼叫此成員函式以取得父框架視窗。

RecalcLayout是CFrameWnd定义的虚拟函数,

边框窗口在必要的时候调用虚拟函数RecalcLayout来重新放置它的控制条和客户窗口,例如在创建窗口时、响应消息WM_SIZE时

调用 ResizeParentToFit函数令视图大小控制其框架窗口的大小。 如果在App的InitInstance中有:

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

要现将这一句改为

m_pMainWnd->ShowWindow(SW_SHOW);

否则,在MainFrame的PreCreateWindow里面设置cs的cx与cy不起作用

要弄一个应用程序配置文件,首先新建一个text文档,然后更名为.config格式的,然后你想显示的东西写在里面,

CFile file("F:\\张悦祎\\SubstationSystem\\system.config", CFile::modeRead);

这样之后你以后要修改的话,只需要去.config那个文件中去修改就可以了

int nlen = file.GetLength(); char * buf; buf = new char[nlen+1]; memset(buf, 0, nlen+1); file.Read(buf, nlen); file.Close(); m_pMainWnd->SetWindowText(buf);

Cstdiofile类继承自CFile类

参数内容:

第一个参数为路径+文件名,最后一个为错误出现的结构.

现在解释下第二个参数

CFile::modeCreate Directs the constructor to create a new file. If the file exists already, it is truncated to 0 length.

指定构造器创建一个新的文件,如果文件已经存在,则内容截0.

CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file is guaranteed to open, either as a newly created file or as an existing file. This might be useful, for example, when opening a settings file that may or may not exist already. This option applies to CStdioFile as well. modeNoTruncate

假如你不用这个参数的话,用modeCreate模式创建和打开一个文件,假如这个文件已经存在,则会清空这个已经存在的文件,加上modeNoTruncate的话,就不会清空这个文件了 CFile::modeRead Opens the file for reading only.

只是以读取方式打开

CFile::modeReadWrite Opens the file for reading and writing.

读与写同时

CFile::modeWrite Opens the file for writing only.

只写

CFile::modeNoInherit Prevents the file from being inherited by child processes.

阻止这个文件被子进程继承

CFile::shareDenyNone Opens the file without denying other processes read or write access to the file. Create fails if the file has been opened in compatibility mode by any other process.

打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以incompatibility模式打开,这是create操作会失败。

CFile::shareDenyRead Opens the file and denies other processes read access to the file. Create fails if the file has been opened in compatibility mode or for read access by any other process.

打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用compatibility模式或者是读方式打开,create操作失败。

CFile::shareDenyWrite Opens the file and denies other processes write access to the file. Create fails if the file has been opened in compatibility mode or for write access by any other process.

打开文件拒绝其它任何进程写这个文件。如果文件被其它进程用compatibility模式或者是写方式打开,create操作失败。

CFile::shareExclusive Opens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process.

以独占方式打开这个文件,不允许其它进程读写这个文件。

CFile::shareCompat This flag is not available in 32 bit MFC. This flag maps to

CFile::shareExclusive when used in CFile::Open.

这个标志在32位的MFC中无效。

CFile::typeText Sets text mode with special processing for carriage return–linefeed pairs (used in derived classes only).

CFile::typeText 设置成对回车换行对有特殊处理的文本模式(仅用在派生类中) CFile::typeBinary 设置二进制模式(仅用在派生类中)

CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流文件。

流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。 CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。 CStdioFile::ReadString(LPTSTR lpsz, UINT nMax);

读取一行文本到缓冲区,遇到―0x0D,0x0A‖时停止读取,并且去掉硬回车―0x0D‖,保留换行符―0x0A‖,在字符串末尾添加―/0‖(0x00)。nMax个字符里包含0x00这个字符。分析如下:

1)如果nMax <= 字符数,读取(nMax-1)个字符 + 0x00

2)如果nMax = 字符数 + 1,读取nMax个字符 + 0x00

3)如果nMax > 字符数,读取nMax个字符 + 0x0A + 0x00

CStdioFile::ReadString(CString &rString);(重载)

读取一行文本到rString,遇到回车换行符停止读取。回车和换行符不读到rString,而且末尾也没有添加―/0‖。

CStdioFile::WriteString( LPCTSTR lpsz );(不支持CString直接写入) 将一个缓冲区中的数据写入与CStdioFile 对象关联的文件中。结束的空字符(―/0‖)不被写入该文件。lpsz 中的所有换行符都被以一个硬回车换行符对写入该文件,即―/n‖被转化成―/r/n‖写入到文件里。

CFile的派生类CStdioFile提供了对文件进行流式的操作功能。其中函数void CStdioFile::WriteString( LPCTSTR lpsz )写入一个字符串,需要给字符串lpsz的末尾加上换行标志‖/r/n‖;函数bool CStdioFile::ReadString(CString &rString )从文件中读取一行,如果文件未读完返回true,否则返回false。

当CStdioFile.WriteString无法处理中文时,把工程的字符集属性 改成 使用多字节字符集 就可以了,具体设置方法如:打开项目属性-->配置属性-->常规-->字符集-->改成 使用多字节字符集

要注意的是CStdioFile在_MSBC环境下读取任何ANSI文本数据都没问题,在UNICODE环境下读取ANSI文本中的中文时就会显示乱码。其原因是由于CStdioFile 读取ANSI文本数据时按char类型读取,在_MSBC下可以直接填充

到CString,在UNICODE环境下要先将char转换成宽字符 WCHAR,然后再填充到CString,即一个汉字的两个char将变成两个UNICODE字符WCHAR。那么问题如何解决呢?实际上在UNICODE环境下,file.ReadString(strLine)取得的数据是char类型,但是存储在UNICODE字符串中。为了取得真实数据,必须对strLine进行处理。

在CFile类中提供了2种模式,typeBinary和typeText。如果是CTextFile类的话当然要强制使用typeText类型了。那么CStdioFile是怎么做的呢? BOOL CStdioFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pException)

{

/// 调用基类打开文件,注意通过nOpenFlags & ~typeText过滤了文件的文本属性

if (!CFile::Open(lpszFileName, (nOpenFlags & ~typeText), pException)) return FALSE;

///转换找开模式

if (nOpenFlags & typeBinary)

szMode[nMode++] = 'b', nFlags ^= _O_TEXT;

else

szMode[nMode++] = 't';

// open a C-runtime low-level file handle

int nHandle = _open_osfhandle((UINT_PTR) m_hFile, nFlags); // open a C-runtime stream from that handle

if (nHandle != -1)

m_pStream = _fdopen(nHandle, szMode);

}

由上面的代码可以看出,CStdioFile强制过滤了typeText标志,使得文件打开模式可以是二进制模式。这已经可以证明CStdioFile不是一个纯粹TextFile类。

再仔细看上面的代码,在调用基类打开后,又使用_open_osfhandle和_fdopen做了奇怪的转换,察看m_pStream的类型

FILE* m_pStream; // stdio FILE

这是一个标准I/O的FILE结构。如果再进一步的研究CStdioFile的源码,还会发现它都是调用标准

I/O的函数来操作的,比如用_fputts/_fgetts来实现WriteString/ReadString,用fread/fwrite/fseek来替代Read/Write/Seek。注意CStdioFile并没有使用CFile的Read/Write/Seek函数,如果在Open里将使用fopen直接打开的话,CStdioFile甚至可以说和CFile没有任何的关系。,由此这个类叫做CStdioFile就不奇怪了。

为什么要研究这个问题呢?前一段在csdn.net上看到不少人问为什么UNICODE的文

CArchive

CArchive 对象提供了一个类型安全缓冲机制,用于将可序列化对象写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。

不要用死路径,用::GetCurrentDirectory获取当前程序所在的目录,找到那个文件读取

对类似于记事本的文件进行逐行读取时,用CStdioFile

char buf[256];

::GetCurrentDirectory(255,buf); CString str_path; str_path.Format("%s",buf);

str_path+="\\"; //str_path+="system_3D.cfg"; str_path+="system.config"; CStdioFile file; CString temp; CString zhanming; if(file.Open(str_path,CFile::modeRead)) { int i=1; while(file.ReadString(temp)) { int index = temp.Find(">",0); int len = temp.GetLength(); if (i==0) { } if (i==1) { } if (i==2) { zhanming=temp.Mid(index+1,len); zhanming=temp.Mid(index+1,len);

} } } zhanming=temp.Mid(index+1,len); i--; m_pMainWnd->SetWindowText(zhanming);

要把窗口显示完整,这句话是必不可少的

::SetWindowPos(m_pMainWnd->m_hWnd,HWND_TOP,0,0,1024,750,SWP_SHOWWINDOW);

MFC中点击按钮弹出对话框

1. 在资源视图中找到dialog,新建dialog,命名为DLG(名字随意),这个dialog就是你要点击后出来的对话框,楼主自己对这个对话框进行设计。

2.找到你要点击的按钮,双击,在显示的函数中添加一下代码:

DLG dlg;

dlg.DoModal();

3.在当前的文件中的最前面添加#include"DLG.h"

4.运行程序。

CListCtrl的用法 CListCtrl类封装了“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签右边列中的信息。此控件(以及CListCtrl类)只适用于运行于Windows 95和Windows NT 3.51及更高版本的程序。

视图

列表视图控件可用四种不同方式显示其内容,称之为“视图”。

图标视图:每一项以全尺寸图标(32×32像素)出现,下面有一个标签。用户可在列表视图窗口拖动项到任意位置。

小图标:视图每一项以小图标(16×16像素)出现,右边有一个标签。用户可在列表视图窗口拖动项到任意位置。

列表视图:每一项以小图标出现,下面有一个标签。项按列排列,不能拖动到列表视图窗口的任何位置。

报表视图:每一项在本行上出现,右边有排列成列的附加信息。最左边的列包含小图标和标签,下一列包含应用指定的子项。嵌入标题控件实现这些列。要了解报表视图标题控件和列的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:给控件添加列(报表视图)”。

控件的当前列表视图风格指定当前视图。要了解这些风格及其用法的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:改变列表控件风格”。

扩展风格

逗留选择:有效时,若光标保持在某项上一段时间,则允许自动选择该项。

虚列表视图:如果有效,允许控件支持DWORD项。通过把管理应用项数据放在最顶上而成为可能。除了项选择和焦点信息,所有项信息必须由应用管理。要了解更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:虚列表控件”。

单击或双击激活:如果有效,允许热跟踪(项文本自动高亮显示)和高亮显示项的单击和双击激活。

拖放列表命令:如果有效,允许拖放列表视图控件中列的记录。只对报表视图有效。

要了解使用新扩展风格的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:改变列表控件风格”。

项和子项

列表视图控件中的每一项含有一个图标、一个标签、一个当前状态和应用定义值(称为“项数据”)。一个或更多子项还可与每一项联系。一个“子项”是一个字符串,在报表视图中可显示在项图标和标签右边的列里。列表视图控件中的每一项都必须与子项数目相同。

类CListCtrl提供一些函数来插入、删除、查找和更改这些项。要了解更多信息,请参阅“Visual C++程序员指南”中的“使用CListCtrl:列表控件中的滚动、排列、排序和查找”。同时请参阅

CListCtrl::GetItem,CListCtrl::InsertItem和CListCtrl::FindItem。

缺省时,列表视图控件负责存储一个项的图标和文本属性。然而,除了这些项类型外,类CListCtrl支持“回调项”。一个“回调项”是一个列表视图项,每个应用枣而不是控件枣存储文本,图标或两者。回调掩码用于指定哪个项的属性(文本和/或图标)由应用提供。如果应用使用回调项,它必须可以提供按需要提供文本和/或图标属性。回调项在你的应用已有部分这种信息时很有帮助。要了解更多信息,请参阅CListCtrl::GetCallBackMask和“使用CListCtrl:回调项和回调掩码”。

图象列表

图标、标题项图象和应用定义的列表视图项状态包含在一些图象列表中(由类CImageList实现),可创建和指派到列表视图控件中。每个列表视图控件可有四个以上的图象列表类型: 大图标:在图标视图中使用,得到全尺寸图标。

小图标:用于小图标、列表和报表视图中,得到图标视图中使用的小版本的图标。 应用定义的状态:包含状态图象,在项图标旁显示以指示一个应用定义状态。

标题项:用于在报表视图中,得到出现在每个标题控件项中的小图象。

缺省时,列表视图控件删除指派给它的图象列表(当它删除时);然而,开发者可通过删除由应用定义的不再使用的图象列表。

#include <afxcmn.h>

请参阅:CImageList

构造函数

CListCtrl类的成员

构造函数

ClistCtrl构造一个CListCtrl对象。

Create创建列表控件并将其附加给CListCtrl对象。

属性

GetBkColor获取列表视图控件的背景色。

SetBkColor设置列表视图控件的背景色。

GetImageList获取用于绘制列表视图项的图象列表的句柄。

SetImageList指定一个图象列表到列表视图控件。

GetItemCount获取列表视图控件中的项的数量。

GetItem获取列表视图项的属性。

GetCallbackMask获取列表视图控件的回调掩码。

SetCallbackMask设置列表视图控件的回调掩码。

GetNextItem查找指定特性和指定指定项关系的列表视图项。

GetFirstSeletedItemPosition在列表视图控件中获取第一个选择的列表视图项的位置。 GetNextSeletedItem为重复而获取下一个选择的列表视图。

GetItemRect获取项的有界矩形。

SetItemPosition在列表视图控件中移动一项到指定位置。

GetItemPosition获取列表视图项的位置。

GetStringWidth指定需要显示所有指定字符串的最小列宽。

GetEditControl获取用于编辑一个项文本的编辑控件的句柄。

GetColumn获取控件的列的属性。

SetColumn设置列表视图列的属性。

GetColumnWidth获取报表视图或列表视图中的列的宽度。

SetColumnWidth改变报表视图或列表视图中的列的宽度。

GetCheck获取与某项相关的状态图象的当前显示状态。

SetCheck设置与某项相关的状态图象的当前显示状态。

GetViewRect获取列表视图控件中所有项的有界矩形。

GetTextColor获取列表视图控件的文本颜色。

SetTextColor设置列表视图控件的文本颜色。

GetTextBkColor获取列表视图控件的文本背景色。

SetTextBkColor设置列表视图控件的文本背景色。

GetTopIndex获取最高级项的索引。

GetCountPerPage计算可正好垂直放入列表视图控件中的项的数目。

GetOrigin获取列表视图控件的最初的当前视图。

SetItemState改变列表视图控件的项的状态。

GetItemState获取列表视图控件的项的状态。

GetItemText获取列表视图项或子项的文本。

SetItemText设置列表视图项或子项的文本。

SetItemCount准备一个列表视图控件以添加大量的项。

GetItemData获取与某项相关的应用所指定的值。

SetItemData设置项的应用指定的值。

GetSelectedCount获取列表视图控件中选择项的数量。

SetColumnOrderArray设置列表视图控件的列序(左或右)。

GetColumnOrderArray获取列表视图控件的列序(左或右)。

SetIconSpacing设置列表视图控件中的图标的距离。

GetHeaderCtrl获取列表视图控件的标题控件。

GetHotCursor获取在热调试对列表视图控件有效时使用的游标。

SetHotCursor设置在热调试对列表视图控件有效时使用的游标。

GetSubItemRect获取列表视图控件中某项的有界矩形。

GetHotItem获取当前在游标下的列表视图项。

SetHotItem设置列表视图控件的当前热项。

GetSelectionMark获取列表视图控件的选择屏蔽。

SetSelectionMark设置列表视图控件的选择屏蔽。

GetExtendedStyle获取列表视图控件的当前扩展风格。

SetExtendedStyle设置列表视图控件的当前扩展风格。

SubItemHitTest指定哪个列表视图项在指定位置。

GetWorkAreas获取列表视图控件的当前工作区。

GetNumberOfWorkAreas获取列表视图控件的当前工作区数量。 SetItemCountEx设置虚列表视图控件的项的数量。

SetWorkAreas设置列表视图控件中图标可以显示的区域。

ApproximateViewRect指定显示列表视图控件项所需的宽度和高度。 GetBkImage获取列表视图控件的当前背景图象。

etBkImage设置列表视图控件的当前背景图象。

GetHoverTime获取列表视图控件的当前逗留时间。

SetHoverTime设置列表视图控件的当前逗留时间。

操作

InsertItem在列表视图控件中插入一个新项。

DeleteItem从控件中删除一项。

DeleteAllItems从控件中删除所有项。

FindItem查找具有指定的字符的列表视图项。

SortItems使用应用定义的比较函数排序列表视图项。

HitTest指定哪个列表视图在指定的位置上。

EnsureVisible保证项是可见的。

Scroll滚动列表视图控件的内容。

ReDrawItems强迫列表视图控件刷新一些项。

Update强迫控件刷新一个指定的项。

Arrange调整一栏里的项。

EditLabel开始项文本该处编辑。

InsertColumn插入列表视图控件中的新列。

DeleteColumn从列表视图控件中删除一列。

CreateDragImage为指定的项构造一个拖动图象列表。

可覆盖的函数

DrawItem当自绘制控件的可视部分改变时被调用。

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com