VC中图像控件的用法与总结
- 格式:doc
- 大小:39.50 KB
- 文档页数:5
VC6.0中控件及按钮的设置和使用VC学习笔记1:按钮的使能与禁止用ClassWizard的Member Variables为按钮定义变量,如:m_Button1;则m_Button1.EnableWindow(true); 使按钮处于允许状态m_Button1.EnableWindow(false); 使按钮被禁止,并变灰显示VC学习笔记2:控件的隐藏与显示用CWnd类的函数BOOL ShowWindow(int nCmdShow)可以隐藏或显示一个控件。
例1:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_HIDE ); //隐藏控件例2:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_SHOW ); //显示控件以上方法常用于动态生成控件,虽说用控件的Create函数可以动态生成控件,但这种控件很不好控制,所以用隐藏、显示方法不失为一种替代手段。
VC学习笔记3:改变控件的大小和位置用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);第一个参数我不会用,一般设为NULL;x、y控件位置;cx、cy控件宽度和高度;nFlags常用取值:SWP_NOZORDER:忽略第一个参数;SWP_NOMOVE:忽略x、y,维持位置不变;SWP_NOSIZE:忽略cx、cy,维持大小不变;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ) ; //编辑控件的大小和位置都改变以上方法也适用于各种窗口。
VC++图像应用指南一——图像显示一、设备上下文中绘制图像1.穿建一个单文档/视图结构的应用程序2.1在视图类的OnDraw编写如下代码1.点击文件→选择新建→选择MFC APP ;填写工程名;点击确认→2.选择单文档→点击完成void COUtView::OnDraw(CDC* pDC){COUtDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CDC memDC;memDC.CreateCompatibleDC(pDC);CBitmap bmp;bmp.LoadBitmap(IDB_BKBITMAP);memDC.SelectObject(&bmp);pDC->BitBlt(30,20,180,180,&memDC,1,1,S RCCOPY);CRect rc(30,20,210,200);CBrush brush(RGB(0,0,0));pDC->FrameRect(rc,&brush);rc.OffsetRect(220,0);BITMAP BitInfo;bmp.GetBitmap(&BitInfo);int x=BitInfo.bmWidth;int y=BitInfo.bmHeight;pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc .Height(),&memDC,0,0,x,y,SRCCOPY);pDC->FrameRect(rc,&brush);brush.DeleteObject();memDC.DeleteDC();bmp.DeleteObject();}2.2程序3.运行程序出现IDB_BKBITMAP不存在4.成功运行程序左图使用了BitBlt方法,在区域中只显示部分图像;右图使用了SretchBlt方法,在区域中显示完整图像,图像被收缩了二、从磁盘中加载图像到窗口中1.穿建一个单文档/视图结构的应用程序2.在视图类中添加一个成员变量m_hBmp1.点击文件→选择新建→选择MFC APP ;填写工程名;点击确认→2.选择单文档→点击完成HANDLE m_hBmp3.在视图类的构造函数中调用LoadImage方法从磁盘中加载文件4.1在视图类中OnDraw方法中绘制位图,代码如下:CMy456View::CMy456View(){m_hBmp=LoadImage(NULL,"Demo.bmp",I MAGE_BITMAP,0,0,LR_LOADFROMFILE);} void CMy456View::OnDraw(CDC* pDC){CMy456Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);CBitmap bmp;bmp.Attach(m_hBmp);CDC memDC;memDC.CreateCompatibleDC(pDC);memDC.SelectObject(&bmp);BITMAP BitInfo;bmp.GetBitmap(&BitInfo);int x=BitInfo.bmWidth;int y=BitInfo.bmHeight;pDC->BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY );bmp.Detach();memDC.DeleteDC();}4.2程序5运行程序三、显示JPEG图像1.创建单文档/视图结构的应用程序2.向视图类中添加成员变量1.点击文件→选择新建→选择MFC APP ;填写工程名;点击确认→2.选择单文档→点击完成HGLOBAL hMem;OLE_YSIZE_HIMETRIC m_JPGHeight; OLE_XSIZE_HIMETRIC m_JPGWidth; IPicture *m_pPicture;IStream *m_pStream;3.视图构造函数中从磁盘加载JPEG图像到流中CMy654View::CMy654View(){CFile file;file.Open("ddf.jpg",CFile::modeReadWrite); DWORD len=file.GetLength();hMem=GlobalAlloc(GMEM_MOVEABLE,len); LPVOID pData=NULL;pData=GlobalLock(hMem);file.ReadHuge(pData,len);file.Close();GlobalUnlock(hMem); CreateStreamOnHGlobal(hMem,TRUE,&m_pStr eam);OleLoadPicture(m_pStream,len,TRUE,IID_IPictu re,(LPVOID*)&m_pPicture);m_pPicture->get_Height(&m_JPGHeight);m_pPicture->get_Width(&m_JPGWidth);}4.在视图类OnDraw方法中绘制JPEG图像5.运行m_pPicture->Render(pDC->m_hDC,0,0,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);四、根据位图数据直接绘图/使用SretchDIBits根据数据流绘制图像1.创建单文档/视图结构的应用程序2.在视图类中定义一个缓冲区,用于存储数据流char *m_pBmpData;1.点击文件→选择新建→选择MFC APP ;填写工程名;点击确认→2.选择单文档→点击完成3.2程序3.1在视图类的构造函数中读取文件到数据流中CMy627View::CMy627View(){ CFile file;file.Open("bk.bmp",CFile::modeReadWrite);int len=file.GetLength();file.Seek(14,CFile::begin);m_pBmpData=new char[len-14];file.Read(m_pBmpData,len-14);file.Close();}4.1在视图类的析构函数中释放缓冲区 4.2程序CMy627View::~CMy627View(){delete m_pBmpData;}5.1向视图类中添加一个成员函数,根据数据5.2程序流输出图像void CMy627View::OutputStream(char*pStream){char *pHeader=pStream;BITMAPINFO BitInfo;memset(&BitInfo,0,sizeof(BITMAPINFO));memcpy(&BitInfo,pHeader,sizeof(BITMAPINFO));int x=BitInfo.bmiHeader.biWidth;int y=BitInfo.bmiHeader.biHeight;pHeader+=40;StretchDIBits(GetDC()->m_hDC,0,0,x,y,0,0,x,y,pHeader,&BitInfo,DIB_RGB_COLORS,SRCCOPY);}7.向程序中添加图像6.在视图类的OnDraw方法中调用OutputSteam方法绘制图像void CMy627View::OnDraw(CDC* pDC){CMy627Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);OutputStream(m_pBmpData);}8.成果运行程序。
VC++中图像处理类CBitmap的⽤法VC++中图像处理类CBitmap的⽤法class CBitmap : public CGdiObject{DECLARE_DYNAMIC(CBitmap)public:static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);// ConstructorsCBitmap();BOOL LoadBitmap(LPCTSTR lpszResourceName);BOOL LoadBitmap(UINT nIDResource);BOOL LoadOEMBitmap(UINT nIDBitmap); // for OBM_/OCR_/OIC_#ifndef _AFX_NO_AFXCMN_SUPPORTBOOL LoadMappedBitmap(UINT nIDBitmap, UINT nFlags = 0,LPCOLORMAP lpColorMap = NULL, int nMapSize = 0);#endifBOOL CreateBitmap(int nWidth, int nHeight, UINT nPlanes, UINT nBitcount,const void* lpBits);BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);BOOL CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight);BOOL CreateDiscardableBitmap(CDC* pDC, int nWidth, int nHeight);// Attributesoperator HBITMAP() const;int GetBitmap(BITMAP* pBitMap);// OperationsDWORD SetBitmapBits(DWORD dwCount, const void* lpBits);DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const;CSize SetBitmapDimension(int nWidth, int nHeight);CSize GetBitmapDimension() const;// Implementationpublic:virtual ~CBitmap();#ifdef _DEBUGvirtual void Dump(CDumpContext& dc) const;#endif};⽗CGdiObjectclass CGdiObject : public CObject{DECLARE_DYNCREATE(CGdiObject)public:// AttributesHGDIOBJ m_hObject; // must be first data memberoperator HGDIOBJ() const;HGDIOBJ GetSafeHandle() const;static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);static void PASCAL DeleteTempMap();BOOL Attach(HGDIOBJ hObject);HGDIOBJ Detach();// ConstructorsCGdiObject(); // must Create a derived class objectBOOL DeleteObject();// Operations#pragma push_macro("GetObject")#undef GetObjectint _AFX_FUNCNAME(GetObject)(int nCount, LPVOID lpObject) const;int GetObject(int nCount, LPVOID lpObject) const;#pragma pop_macro("GetObject")UINT GetObjectType() const;BOOL CreateStockObject(int nIndex);BOOL UnrealizeObject();BOOL operator==(const CGdiObject& obj) const;BOOL operator!=(const CGdiObject& obj) const;// Implementationpublic:virtual ~CGdiObject();#ifdef _DEBUGvirtual void Dump(CDumpContext& dc) const;virtual void AssertValid() const;#endif};1 装载已导⼊⼯程的位图资源// 装载位图CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP);2 装载位图⽂件为了能让CBitmap能够装载位图⽂件,必须调⽤API函数LoadImage HANDLE LoadImage(HINSTANCE hinst, // handle of the instance containing the imageLPCTSTR lpszName, // name or identifier of imageUINT uType, // type of imageint cxDesired, // desired widthint cyDesired, // desired heightUINT fuLoad // load flags);装载: Example 1:HBITMAP hBmp = (HBITMAP)LoadImage(NULL,m_fileName,IMAGE_BITMAP,0, 0,LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE); Example 2:HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"BG.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);将装载后得到的HBITMAP资源句柄与 CBitmap 对象相连if (hBmp != NULL) {CBitmap *pBmp = CBitmap::FromHandle(hBmp);}或CBitmap bmp;if (hBmp != NULL) {bmp.DeleteObject();bmp.Attach(hBmp);}3 显⽰位图CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1);BITMAP bm;bmp.GetBitmap(&bm);CDC dc;dc.CreateCompatibleDC(pDC);CBitmap*pOldBmp=(CBitmap *)dc.SelectObject(&bmp);pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dc,0,0,SRCCOPY);pDC->SelectObject(pOldBmp);bmp.DeleteObject();bmp.LoadBitmap(IDB_BITMAP2);4 删除资源CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP);CBitmap *pOld=pDC->SelectObject(&bmp);// 此时位图对象还在pDC中,因此不能马上删除// ⽽是先将位图从DC中选出然后再删除pDC->SelectObject(pOld);bmp.DeleteObject();5 CBitmap 析构当CBitmap作为局部变量在其退出作⽤范围后,会发⽣析构,这时候CBitmap会将其对应的位图资源(hBitmap )释放掉。
VC6.0中控件及按钮的设置和使用VC学习笔记1:按钮的使能与禁止用ClassWizard的Member Variables为按钮定义变量,如:m_Button1;则m_Button1.EnableWindow(true); 使按钮处于允许状态m_Button1.EnableWindow(false); 使按钮被禁止,并变灰显示VC学习笔记2:控件的隐藏与显示用CWnd类的函数BOOL ShowWindow(int nCmdShow)可以隐藏或显示一个控件。
例1:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_HIDE ); //隐藏控件例2:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号pWnd->ShowWindow( SW_SHOW ); //显示控件以上方法常用于动态生成控件,虽说用控件的Create函数可以动态生成控件,但这种控件很不好控制,所以用隐藏、显示方法不失为一种替代手段。
VC学习笔记3:改变控件的大小和位置用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);第一个参数我不会用,一般设为NULL;x、y控件位置;cx、cy控件宽度和高度;nFlags常用取值:SWP_NOZORDER:忽略第一个参数;SWP_NOMOVE:忽略x、y,维持位置不变;SWP_NOSIZE:忽略cx、cy,维持大小不变;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(5 0,80)处pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变以上方法也适用于各种窗口。
VC中Windows常用控件的创建和使用引言本文将要介绍的Windows控件指的是Windows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。
这些预定义控件实际是一种特殊的子窗口,主要供用户同应用程序的交互之用。
和普通窗口类一样,每一个预定义控件也都是由所属的窗口类规定了自身的外观属性和具有的功能。
Windows系统通过预定义的方式提供了一些标准控件的窗口类名,在程序设计时只需通过调用CreateWindow()函数或CreateWindowEx()函数并将预定义的窗口类名作为参数传入即可创建出相应的控件。
当用户通过屏幕对象同控件进行交互操作时,控件将以"通知消息"的形式向父窗口发送WM_COMMAND通知消息,消息的wParam参数含有控制标识,在lPamam参数的高位字和低位字中分别含有通知码和控制句柄,由父窗口完成对消息的响应处理。
按钮类控件按钮类控件是窗口类名被系统预定义为BUTTON的一类控件,该类控件具有十余种不同的窗口风格,包含了普通的下压式按钮、单选按钮、复选按钮和分组框等多种常用的按钮形式。
具体情况列表如下:以上按钮风格通常需要同窗口风格共同使用,由CreateWindow()函数或MFC的CButton类成员函数Create()完成对按钮的创建:如果需要处理按钮发送给其父窗口的消息,可以在进行消息响应的类实现中添加一个如下形式的消息映射入口和相应的消息处理函数:ON_Notification(id, memberFxn )其中,id为发送通知消息的按钮ID号,memberFxn为消息处理函数。
如果按钮是以new操作符的方式在堆(heap)内创建一个CButton对象,那么就必须确保在关闭窗口前能调用delete销毁该对象。
如果CButton对象是在栈上创建的就不必显式销毁对象了,应用程序在退出时会自动予以销毁。
编辑类控件以窗口类名"EDIT"创建的编辑类控件是一个可以用来接受用户键盘字符输入的矩形区域,可以在其内进行编辑操作。
vc tab控件的用法
VC中的Tab控件是一种用于创建多页面的用户界面(UI)的工具。
它可以让用户在不同的页面之间切换,以便更好地管理和显示不同的内容。
要使用VC中的Tab控件,您需要执行以下步骤:
1. 在您的VC项目中添加Tab控件。
您可以在Visual Studio的设计视图中直接从工具箱中拖动Tab控件到您的UI中,或者您也可以手动编写代码来创建Tab 控件。
2. 配置Tab控件的属性。
您可以通过属性窗口来设置Tab控件的属性,例如Tab 页的样式、位置、大小等。
3. 添加Tab页。
您可以使用Tab控件的“Pages”属性来添加Tab页。
每个Tab 页都是一个单独的窗口,可以包含您想要显示的内容。
4. 在每个Tab页中添加控件。
您可以在每个T ab页中添加其他控件,例如按钮、文本框、标签等,以便用户可以与页面进行交互。
5. 编写事件处理程序。
您需要编写事件处理程序来处理用户与Tab控件的交互,例如当用户单击一个Tab页时,您可能需要显示不同的内容。
总之,VC中的Tab控件是一种非常有用的工具,可以让您创建复杂的UI,并在不同的页面中显示不同的内容。
如果您想要在您的应用程序中使用Tab控件,请参考VC的文档或教程以获取更多信息。
1。
VC编程中如何操作数据库中的图像字段C语言教程本文以ACESS97为例,采用ODBC方式打开数据库Photo,数据库Photo的images表中含有一个image的图像字段,在刚打开时显示第一条记录。
存取操作时关键是确定数据的长度,读数据操作时图像数据可以从记录集的图像字段对应的长二进制成员变量m_Image的成员m_hData得到,这个句柄变量存放分配给图像字段的数据,该对象的另一个成员变量m_dwDataLength为该字段的实际长度,在某些情况下,m_dwDataLength的值有可能小于m_hData 中的数据长度值。
具体内容可以参考MSND。
以下实现的部分关键代码。
首先请看 CdbImages记录集的定义:CdbImages::CdbImages(CDatabase* pdb): CRecordset(pdb){//{{AFX_FIELD_INIT(CdbImages)m_nFields = 2;//数据库中有两个字段//}}AFX_FIELD_INITm_nDefaultType = snapshot;//数据库以快照形式打开}CString CdbImages::GetDefaultConnect(){return_T("ODBC;DSN=MS Access Database");//以ODBC操作数据库}CString CdbImages::GetDefaultSQL(){return _T("[Images]");//默认的操作是连接到数据库中的Images表} void CdbImages::DoFieldExchange(CFieldExchange* pFX){//{{AFX_FIELD_MAP(CdbImages)pFX-SetFieldType(CFieldExchange::outputColumn);RFX_LongBinary(pFX,_T("[Image]"), m_Image);//记录集中的成员对象和表中的OLE字段采用长二进制交换。
vc datagrid控件使用总结vc datagrid控件是一种常用的表格控件,用于在VC++开发中展示和编辑数据。
本文将对vc datagrid控件的使用进行总结,以帮助读者更好地掌握该控件的功能和使用方法。
一、控件介绍vc datagrid控件是一种用于显示和编辑数据的控件,它可以在一个表格中展示多行多列的数据,并提供了丰富的功能和样式设置。
通过vc datagrid控件,用户可以方便地进行数据的查看、编辑和操作。
二、控件的基本功能1. 数据绑定:vc datagrid控件支持数据绑定,可以将数据源与控件进行关联,实现数据的显示和同步更新。
2. 数据排序:vc datagrid控件提供了数据排序的功能,用户可以通过点击表头来对数据进行升序或降序排列。
3. 数据筛选:vc datagrid控件支持数据筛选功能,用户可以根据条件对数据进行筛选,以便更快地定位所需的数据。
4. 数据编辑:vc datagrid控件允许用户对表格中的数据进行编辑,包括修改、删除和添加数据等操作。
5. 数据格式化:vc datagrid控件支持对数据的格式化显示,用户可以根据需要对数据进行格式化处理,如日期格式、数字格式等。
6. 数据分页:vc datagrid控件可以支持数据的分页显示,当数据量较大时,可以将数据分页显示,提高用户的浏览效率。
7. 表格样式:vc datagrid控件提供了丰富的表格样式设置,用户可以对表格的字体、颜色、边框等进行自定义设置,以满足不同的显示需求。
三、控件的使用步骤1. 引入控件:在VC++项目中引入vc datagrid控件的头文件和库文件。
2. 创建控件:通过代码或可视化界面创建vc datagrid控件,并设置控件的属性。
3. 绑定数据:将数据源与vc datagrid控件进行关联,可以通过代码绑定或者使用数据绑定控件来实现。
4. 设置列属性:根据数据源的结构,设置vc datagrid控件的列属性,包括列名、数据类型、显示格式等。
VCMFC之ListCtrl控件使用经验总结本文将从创建ListCtrl控件、数据的插入、删除和修改、列表项的选择和排序等方面,总结一些经验和注意事项。
一、创建ListCtrl控件创建ListCtrl控件的方法有很多,下面介绍两种常用的方法。
2. 动态创建ListCtrl控件:可以通过CListCtrl类的Create函数来动态创建ListCtrl控件。
例如:```cppCListCtrl m_listCtrl;m_listCtrl.Create(WS_CHILD , WS_VISIBLE , LVS_REPORT, CRect(0, 0, 500, 300), this, IDC_LIST_CTRL);```此外,还可以通过控件向导创建ListCtrl控件,控件向导在创建ListCtrl控件时会生成相关的代码。
二、数据的插入、删除和修改1.插入数据:可以使用InsertItem函数向ListCtrl控件中插入新的项。
例如:```cppm_listCtrl.InsertItem(0, _T("Item 1"));2.删除数据:可以使用DeleteItem函数删除ListCtrl控件中的其中一项。
例如:```cppm_listCtrl.DeleteItem(0);```3.修改数据:可以通过SetItemText函数修改ListCtrl控件中其中一项的文字。
例如:```cppm_listCtrl.SetItemText(0, 1, _T("Modified Item"));```三、列表项的选择和排序1.列表项的选择:可以使用GetNextItem函数和SetItemState函数来获取和设置ListCtrl控件中的选中项。
例如:```cppint nItem = m_listCtrl.GetNextItem(-1, LVNI_SELECTED);m_listCtrl.SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);2.列表项的排序:可以使用SortItems函数对ListCtrl控件中的数据进行排序。
图片框控件的使用第7课使用图片框控件学习目标:1、图片框控件的使用2、熟悉LoadPicture()函数的用法3、了解VB中函数的基本知识第7课使用图片框控件图片框控件介绍PictureBox(图片框)是VisualBasic中用来显示图形的基本控件之一,主要用于在窗体中显示图像,可以显示“.bmp”、“.ico”、“.wmf”、“.jpg”、“.gif”等多种格式的图像文件。
PictureBox控件充当一个图片容器或平台。
当然要在图片框中显示图片,还需要编写相应的代码。
第7课使用图片框控件PrivateSubOp t1_()ClickPicGarden.Picture=Loadpicture(“d:\vbImage\1.jpg ”)EndSub函数图片路径图片名称图片格式对象名称属性1、编写代码时,注意对象名称2、显示图片的路径(图片位置)3、图片名称4、图片格式第7课使用图片框控件用LoadPicture()函数把d:\vbImage\1.jpg图片赋给图片框控件picGarden的Picture属性,简单说就是把1.jpg这幅图像放入图片框中并显示出来。
PrivateSubOpt2_()ClickpicGarden.Picture=LoadPicture(d:\vbImage\2.jpg)EndSub第7课使用图片框控件函数是一些可以由程序调用的程序代码。
VB中有两类函数:用户自定义的函数和内部函数。
用户自定义的函数是由用户根据需要自己编写的函数。
内部函数也称为标准函数,是VB系统的开发者编写的。
LoadPicture()函数就是VB的一个内部函数。
VB的内部函数由很多,如数学函数、字符串函数、日期函数等等。
LoadPicture()函数的一般格式是:LoadPicture(“图像文件名”)其中的”图像文件名”应包括图像文件所在的路径,如“d:\vbImage\1.jpg”。
如果英文双引号中为空(不输入任何字符),将清楚在对象的Picture属性中设置的图像。
树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEWTVINSERTSTRUCT包含添加新项到树形视控件所使用的信息。
这个结构被TVM_INSERTITEM消息使用。
这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命名习惯重命名了。
typedef struct tagTVINSERTSTRUCT {HTREEITEM hParent;HTREEITEM hInsertAfter;#if (_WIN32_IE >;= 0x0400)union{TVITEMEX itemex;TVITEM item;} DUMMYUNIONNAME;#elseTVITEM item;#endif} TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;成员hParent父项的句柄。
如果这个成员的值是TVI_ROOT或NULL,这项将被作为树形控件的根插入。
hInsertAfter插入的新项之后的项的句柄。
或是下列值之一:TVI_FIRST在列表的开始插入项TVI_LAST在列表的最后插入项TVI_ROOT作为一个根项添加TVI_SORT以字母顺序插入项itemex版本4.71。
TVITEMEX包含关于项添加的信息。
itemTVITEM包含关于项添加的信息。
需求Windows NT/2000:需要Windows NT 3.51或更高版本。
Windows 95/98:需要Windows 95或更高版本。
Header:定义在commctrl.h。
TVITEM指定或接收树形视项的属性。
这个结构与TV_ITEM结构一样,但它已经被当前命名协议重新命名了。
新的应用程序应该使用这个结构。
typedef struct tagTVITEM{UINT mask;HTREEITEM hItem;UINT state;UINT stateMask;LPTSTR pszText;int cchTextMax;int iImage;int iSelectedImage;int cChildren;LPARAM lParam;} TVITEM, FAR *LPTVITEM;成员mask指出其它的结构成员哪些包含有效数据的标记数组。
VC++6.0中MsChart的使用方法VC++6.0中MsChart的使用方法1.MSChart制图类1.1 添加MSChart控件MSChart是VC++6.0中自带的一个特殊控件类,用于绘制坐标曲线图。
如果要使用这个控件,则可以按下图的示意进行添加此控件。
1.2MSChart控件的使用方法首先在要使用的类的实现文件中包含如下头文件:#include "VcPlot.h"#include "VcAxis.h"#include "VcValueScale.h"#include "VcSeriesCollection.h"#include "VcSeries.h"#include "VcPen.h"#include "VcCategoryScale.h"#include "VcColor.h"#include "VcDataGrid.h"#include "VcBackdrop.h"#include "VcFill.h"#include "VcBrush.h"#include "VcDataPoints.h"#include "VcDataPoint.h"#include "VcDataPointLabel.h"#include "VcAxisTitle.h"#include "math.h"在要使用的类的头文件中包含:#include "mschart.h"本系统中按照如下函数调用来实现MSChart类绘制故障树重要度曲线的功能(CDrawImp是调用MSChart的类)。