




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.1标准控件以及对应的标准控件以及对应的MFC类类控件MFC类说明按钮(button)CButton命令按钮,端框,复选框静态框(static)CStatic显示文本和图像文本框(edit)CEdit接收用户的文本输入列表框(listbox)CListBox文本串列表组合框ComboBox CComboBox文本框+列表框滚动条ScrollBarCScrollBar水平/垂直 WM_COMMAND wNotifyCode = HIWORD(wParam); / notification code wID = LOWORD(wParam); / item, control, or accele
2、rator identifier hwndCtl = (HWND) lParam; / handle of control 7.1.1 按钮与按钮与CButton样式样式 push button 按压式(命令)按钮按压式(命令)按钮 radio button 单选按钮单选按钮 check box 复选框复选框 group box 群组框群组框通知消息通知消息: BN_CLICKED,BN_DOUBLECLICKED成员函数成员函数:int Cbutton:GetCheck() 获得单选或复选按钮的状态:获得单选或复选按钮的状态:1-checked 0-unchecked UINT GetSta
3、te()Mask 0 x0003 0-unchecked 1-checked 0 x0004 1-hilighted 0 x0008 1-has focusTabstop属性属性Group属性属性 Tabstop属性属性:Tab和和Shift+Tab键将输入焦键将输入焦点从一个控件移到另一个控件。点从一个控件移到另一个控件。 Group属性属性:按按Tab顺序顺序 在其后的控件都在其后的控件都属于一组。如果随后的控件也有属于一组。如果随后的控件也有Group属性,则开始新的一组。属性,则开始新的一组。使用命令按钮:使用命令按钮:为指定为指定id的命令按钮响应的命令按钮响应BN_CLICKED消
4、息通消息通知码知码使用群组框:使用群组框: 不需对其作任何消息响应,其作用只是直观的不需对其作任何消息响应,其作用只是直观的告诉用户同一组操作告诉用户同一组操作使用单选按钮:使用单选按钮: 用户按下用户按下 表示选中,响应表示选中,响应BN_CLICKED 使用复选框:使用复选框: 用用GetCheck()或或GetState()函数获取其是否选中函数获取其是否选中创建自画式按钮资源编辑: 在对话框资源模板中添加一个命令按钮 设置按钮的 BS_OWNERDRAW属性 设置ID和Caption 创建四个位图 ID设置为如下的字符串 按钮的Caption+ “U” UP 按钮的Caption+ “
5、D” DOWN 按钮的Caption+ “F” FOCUS 按钮的Caption+ “E” ENABLE对CDialog派生类编码 添加成员变量 CBitmapButton m_bmpbtn; 在InitDialog函数中调用 m_bmpbtn.AutoLoad (IDC_BUTTON,this)7.1.2 文本框与文本框与CEdit样式:单行编辑文本框样式:单行编辑文本框 多行编辑文本框多行编辑文本框通知消息:通知消息:EN_CHANE,EN_UPDATECWnd成员函数:成员函数: CWnd:GetWindowText() 获取单行编辑文本框输入内容获取单行编辑文本框输入内容 CEdit成
6、员函数:成员函数:获取输入信息int GetLineCount( ) const; 获取输入行数int GetLine( int nIndex, LPTSTR lpszBuffer ) const;int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;获取指定行的输入内容int LineLength( int nLine = -1 ) const;获取指定行的字符串长度文本框状态文本框状态BOOL GetModify( ) const;void SetModify( BOOL bModified = TRUE );
7、BOOL CanUndo( ) const;选中字符串选中字符串DWORD GetSel( ) const;void GetSel( int& nStartChar, int& nEndChar ) const;void SetSel( DWORD dwSelection, BOOL bNoScroll = FALSE );void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );编辑剪贴编辑剪贴 void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo
8、= FALSE ); BOOL Undo( ); void Clear( ); void Copy( ); void Cut( ); void Paste( );口令口令 TCHAR GetPasswordChar( ) const; void SetPasswordChar( TCHAR ch );7.1.3列表框与列表框与CListBox STYLE: LBS_NOTIFY 通知码 LBN_DBLCLK LBN_SELCHANGE ClistBox主要成员函数int GetCurSel( ) const;单选框被选中项的索引值int GetCount( ) const;选项个数GetSel
9、Items(int max,LPINT index)多选框被选中项的索引值int GetSel( int nIndex ) const;判断某一项是否被选中int GetText( int nIndex, LPTSTR lpszBuffer ) const;void GetText( int nIndex, CString& rString ) const;指定索引项的字符串增减表项int AddString( LPCTSTR lpszItem );int DeleteString( UINT nIndex );int InsertString( int nIndex, LPCTSTR
10、 lpszItem );void ResetContent( );使用列表框1.设置属性 单选或多选 是否排序 2.初始化 添加列表项AddString();3.响应响应LBN_DBLCLK或 LBN_SELCHANGE4.获取用户选项信息 单选列表框:调用调用 GetCurSel( )获得选中项索引获得选中项索引调用调用GetText()获得字符串信息()获得字符串信息多选列表框:调用调用GetSelItems()获得选中项索引获得选中项索引调用调用GetText()获得字符串信息()获得字符串信息7.1.4组合框与CComboBox组合框的使用:1.设置组合框样式 CBS_DROPDOWN
11、 CBS_DROPDOWNLIST CBS_SIMPLE 2.初始化 添加列表项(同列表框) 设置缺省选项消息说明CBN_DBLCLK项目被双击时发送CBN_SELCHANGE选项被修改时发送CBN_SELENDOK选中某一项时发送CBN_SELENDCANCEL取消选择时发送CBN_EDITUPDATE编辑框中的文本将要被更改时发送CBN_EDITCHANGE编辑框中的文本已经被更改时发送CBN_KILLFOCUS组合框失去输入焦点时发送3.响应通知消息CBN_SELCHANGE4.获取用户选项信息 int GetCurSel()int GetLBText()7.1.5滚动条v消息: WM_
12、HSCROLL WM_VSCROLLv通知码: SB_LINEUP SB_LINEDOWN SB_PAGEUP SB_PAGEDOWN SB_LINELEFT SB_LINERIGHT SB_PAGELEFT SB_PAGERIGHT SB_THUMBPOSITION SB_THUMBTRACK 操作说明GetScrollPos获取滚动条的当前位置SetScrollPos设置滚动条的当前位置SetScrollRange设置最小和最大位置GetScrollRange获取当前的最小和最大位置ShowScrollBar显示或隐藏滚动条CScrollBarCScrollBar类类v使用滚动条:使用滚动
13、条: 1. 初始化:设定滚动范围,初始位置void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE ) int SetScrollPos( int nPos, BOOL bRedraw = TRUE );SetScrollInfo() BOOL SetScrollInfo( LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE );typedef struct tagSCROLLINFO UINT cbSize; UINT fMask; /SIF_ALL(SIF_PAGE, SI
14、F_POS, SIF_RANGE, and SIF_TRACKPOS) int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; SCROLLINFO; typedef SCROLLINFO FAR *LPSCROLLINFO; 2.响应WM_HSCROLL或WM_VSCROLL消息分别就不同的通知码,获取滚动条的新位置 afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ); npos for SB_THUMBPOSITION or SB_THU
15、MBTRACK; 调用调用SetScrollPos函数重新设置滚动函数重新设置滚动条的位置条的位置7.2 使用通用控件使用通用控件 WM_NOTIFY消息消息 进度条进度条 滑杆滑杆 微调按钮微调按钮 列表控件列表控件 树状控件树状控件 时间日期控件时间日期控件 动画控件动画控件WM_NOTIFY消息消息 wParam 控件的子窗口控件的子窗口ID lParam NMHDR * typedef struct tagNMHDR HEND hwndFrom; UINT idFrom; UINT code; NMHDR; 通知码 说 明NM_CLICK鼠标左键单击控件NM_DBLCLK鼠标左键双击控
16、件NM_RCLICK鼠标右键单击控件NM_RDBLCLK鼠标右键双击控件NM_RETURN控件具有输入焦点时按下 Enter 键NM_KILLFOCUS控件失去输入焦点NM_SETFOCUS控件获得输入焦点7.2.1 7.2.1 滑块控件滑块控件 滑块控件的样式滑块控件的样式样式说明TBS_HORZ水平放置滑杆TBS_VERT竖直放置滑杆TBS_LEFT刻度线画在竖直滑杆的左侧TBS_RIGHT刻度线画在竖直滑杆的右侧TBS_TOP刻度线画在水平滑杆的上方TBS_BOTTOM刻度线画在水平滑杆的下方TBS_BOTH刻度线画在滑杆的两侧TBS_NOTICKS清除滑杆的刻度线TBS_AUTOTIC
17、KS在滑杆范围内每个停止位处画一条刻线CSliderCtrlCSliderCtrl类类操作说明SetRange设置滑块的最小和最大位置GetRange获取滑块的最小和最大位置SetPos设置滑块的当前位置GetPos获取滑块的当前位置SetTicFreq设置滑块上相邻两个标记之间的距离(样式应选中 Tickmarks 和 Auto ticks)SetLineSize设置行的大小,即按键盘上的方向键时滑块位置变化的大小GetLineSize获取行的大小SetPageSize设置页的大小,即按键盘上的 Pagedown/Pageup 时滑块位置变化的大小GetPageSize获取页的大小 控件的初
18、始化控件的初始化 设置范围设置范围 slider1.SetRange(0,255); 设置行大小设置行大小 m_slider1.SetLineSize(3); 设置页大小设置页大小 m_slider1.SetPageSize(50);消息响应消息响应 WM_HSCROLL WM_HSCROLL 或或 WM_VSCROLLWM_VSCROLL调用调用GetPosGetPos()()函数获取滑块位置函数获取滑块位置7.2.2 7.2.2 微调按钮控件微调按钮控件微调按钮控件样式微调按钮控件样式样式说 明UDS_HORZ使箭头呈水平方向UDS_WRAP如果前进或后退超出了最大值或最小值,则循环UDS
19、_NOTHOUSANDS清除千位分割符UDS_SETBUDDYINT微调按钮的值改变时,实时更新伙伴中的文本UDS_AUTOBUDDY选择 Tab 顺序紧接在它前面的控件为伙伴UDS_ALIGNRIGHT将微调按钮填在伙伴控件的右边缘UDS_ALIGNLEFT将微调按钮填在伙伴控件的左边缘操作说 明SetPos设置微条按钮的当前值GetPos获取当前值SetRange设置取值范围GetRange获取取值范围SetBuddy通过指向伙伴的 CWnd 指针来连接两者GetBuddy获得指向当前伙伴的 CWnd 指针SetAccel设置持续按住箭头时的加速度GetAccel获得当前的加速度CSpin
20、ButtonCtrlCSpinButtonCtrl类类初始化初始化设置范围设置范围 m_spin1.SetRange(0,200);设置当前位置设置当前位置 m_spin1.SetPos(20); WM_VSCROLL( WM_VSCROLL(或或WM_HCROLL)WM_HCROLL)消息消息 一般情况下不需要响应一般情况下不需要响应7.2.3 7.2.3 进度条控件和动画控件进度条控件和动画控件进度条控件进度条控件样式样式 PBS_VERTICAL PBS_SMOOTH.函数说 明SetRange为进度条设置范围,如果不设置则默认为 0 到 100GerRange获取范围SetPos设置当
21、前位置GetPos获取当前位置SetStep设置步长StepIt进度条以步长前进CProgressCtrlCProgressCtrl类类初始化初始化 设置范围设置范围 m_progress1.SetRange(0,100); 设置步长设置步长 m_progress1.SetStep(10);操作操作StepIt()动画控件动画控件 播放播放avi格式的文件格式的文件 样式样式 ACS_CENTER 中间对齐中间对齐, 不调整大小不调整大小 ACS_TRANSPARENT 背景透明背景透明 ACS_AUTOPLAY 自动播放自动播放CAnimateCtrl BOOL Open( LPCTSTR
22、lpszFileName );BOOL Play( UINT nFrom, UINT nTo, UINT nRep );BOOL Stop( );BOOL Close( );通知消息通知消息WM_COMMANDACN_START ACN_STOP 7.2.4 7.2.4 图像列表控件(图像列表控件(CImageListCImageList) 一系列图片的集合一系列图片的集合图片大小相同图片大小相同每个图片有一个从零开始的索引号每个图片有一个从零开始的索引号 不单独使用,可以和以下控件一起使用不单独使用,可以和以下控件一起使用 list controls list controls tree c
23、ontrolstree controlstab controlstab controls BOOLBOOL Create(Create( intint cx, , intint cy, , UINTUINT nFlags, , intint nInitial, , intint nGrow );); intint Add(Add( HICONHICON hIcon ););.CImageListCImageList类的成员函数类的成员函数 #define ILC_MASK 0 x0001 #define ILC_COLOR 0 x0000 #define ILC_COLORDDB 0 x00F
24、E #define ILC_COLOR4 0 x0004 #define ILC_COLOR8 0 x0008 #define ILC_COLOR16 0 x0010 #define ILC_COLOR24 0 x0018 #define ILC_COLOR32 0 x0020nFlagsnFlags7.2.5 7.2.5 列表控件列表控件样式描述LVS_ICON大图标视图LVS_SMALLICON小图标视图LVS_LIST列表视图LVS_REPORT报表视图LVS_ALIGNLEFT在图标和小图标视图中,项目左对齐LVS_EDITLABELS允许项文本在原处编辑LVS_NOSORTHEADE
25、R列标题不具有按钮功能LVS_SHAREIMAGELISTS允许图像列表被多个列表控件使用LVS_SORTASCENDING以项文本的升序排列LVS_SORTDESCENDING以项文本的降序排列样式样式改变样式改变样式LONG GetWindowLong( HWND hWnd,LONG GetWindowLong( HWND hWnd,int nIndexint nIndex) )LONG SetWindowLong( HWND hWndLONG SetWindowLong( HWND hWnd, , int nIndexint nIndex, / offset of value to se
26、t, / offset of value to set LONG dwNewLongLONG dwNewLong / new value); / new value); GWL_STYLEGWL_STYLE CWindow:GetWindowLong LONG GetWindowLong( int nIndex ) const;EXAMPEXAMP / Get the current window style. DWORD dwStyledwStyle = GetWindowLong(hwndLV, WL_STYLE); / Only set the window style if the v
27、iew bits have changed. if (dwStyle & LVS_TYPEMASK) != dwView) SetWindowLong(hwndLV, GWL_STYLE, (dwStyle & LVS_TYPEMASK) | dwView); CListCtrlCListCtrl类类函数说明InsertColumn在列表中插入新列DeleteColumn删除列表中的一列InsertItem在列表中插入新项DeleteItem删除列表中的一项DeleteAllItems删除所有项GetColumn得到某一列的属性SetColumnWidth设置报表或列表视图中某
28、一列的宽度GetColumnWidth得到报表或列表视图中某一列的宽度GetItem得到某一项的属性GetItemCount得到列表中的项数SetItemText设置某一项的文本SetItemState设置某一项的状态设置图像列表设置图像列表SetImageListSetImageList( CImageList( CImageList* * pImageList pImageList, ,intint nImageList nImageList ) ) LVSIL_NORMAL LVSIL_NORMAL Image list with large icons Image list with
29、large iconsLVSIL_SMALL LVSIL_SMALL Image list with small iconsImage list with small iconsLVSIL_STATE LVSIL_STATE Image list with state imagesImage list with state images添加或插入新列添加或插入新列 int InsertColumn( int nCol, const LVCOLUMN* pColumn ); int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nF
30、ormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 ); struct struct _LVCOLUMN _LVCOLUMN UINT mask; UINT mask;intint fmt fmt; ; intint cx cx; ; LPTSTR pszText LPTSTR pszText; ; int int cchTextMax cchTextMax; ; int int iSubItem iSubItem; ; LVCOLUMN, FAR LVCOLUMN, FAR * *LPLVCOLUMN; LPLVCOLUMN; (
31、mask )( mask )LVCF_FMT LVCF_FMT The fmtThe fmt member is valid. member is valid. LVCF_SUBITEM LVCF_SUBITEM The iSubItemThe iSubItem member is valid member is valid LVCF_TEXT LVCF_TEXT The pszTextThe pszText member is valid member is valid LVCF_WIDTH LVCF_WIDTH The cxThe cx member is valid. member is
32、 valid. ( fmt( fmt ) )LVCFMT_CENTER LVCFMT_CENTER Text is centeredText is centeredLVCFMT_LEFT LVCFMT_LEFT Text is left-alignedText is left-alignedLVCFMT_RIGHT LVCFMT_RIGHT Text is right-aligned.Text is right-aligned. LV_COLUMNLV_COLUMN添加表项添加表项 InsertItemInsertItemint InsertItem( const LVITEM* pItem
33、);int InsertItem( int nItem, LPCTSTR lpszItem );int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam ); SetItemBOOL SetItem( const LVITEM* pItem );BOOL SetItem( int nItem, int nSubIt
34、em, UINT nMask, LPCTSTR lpszItem, int nImage, UINT nState, UINT nStateMask, LPARAM lParam structstruct _LVITEM _LVITEM UINT mask; UINT mask; intint iItem iItem; ; intint iSubItem iSubItem; ; UINT state;UINT state; UINT stateMaskUINT stateMask; ; LPTSTR pszTextLPTSTR pszText; ; intint cchTextMax cchT
35、extMax; ; intint iImage iImage; ; LPARAM lParamLPARAM lParam; ; LVITEM, FAR LVITEM, FAR * *LPLVITEM; LPLVITEM; Two important members:Two important members:iItemiItem : : zero-based index of the item zero-based index of the itemiSubItemiSubItem: : one-based index of a subitem one-based index of a sub
36、item(mask)(mask)LVIF_TEXTLVIF_TEXT The pszTextThe pszText member is valid member is valid or must be filled in or must be filled in LVIF_IMAGELVIF_IMAGE The iImageThe iImage member is valid member is valid or must be filled in or must be filled in LV_ITEMLV_ITEM处理消息处理消息 NM_CLICK: NM_CLICK: NM_DBLCLK
37、NM_DBLCLKlpnmlvlpnmlv =( =(LPNMLISTVIEW) lParamLPNMLISTVIEW) lParamtypedef struct tagNMLISTVIEWtypedef struct tagNMLISTVIEW NMHDR hdr NMHDR hdr; ; int iItem int iItem; ; int iSubItem int iSubItem; ; UINT uNewState UINT uNewState; ; UINT uOldState UINT uOldState; ; UINT uChanged UINT uChanged; ; POIN
38、T ptAction POINT ptAction; ; LPARAM lParam LPARAM lParam; ; NMLISTVIEW, FAR NMLISTVIEW, FAR * *LPNMLISTVIEW;LPNMLISTVIEW; UINT GetItemStateUINT GetItemState( int( int nItem nItem, UINT nMask, UINT nMask ) ) const; const; LVIS_SELECTED LVIS_SELECTED UINT GetSelectedCountUINT GetSelectedCount( ) const
39、( ) const CStringCString GetItemText GetItemText( int( int nItem nItem, int, int nSubItem nSubItem ) ) const;const;获取表项信息获取表项信息7.2.5 7.2.5 树状控件树状控件 StylesStyles TVS_HASLINES TVS_LINESATROOT TVS_HASBUTTONS TVS_EDITLABELS . CTreeCtrlCTreeCtrl类类操作说明DeleteAllItems删除树中的所有项DeleteItem删除树中的某一项Expand展开或折叠某一项
40、的子项GetChildItem获取某一项的子项GetItemText获取某一项的文本GetParentItem获取某一项的父项GetRootItem获取一棵树的根GetSelectItem获取当前选择的项InsertItem在树中插入新的项SelectItem选择一个指定的项SetImageList设置与树有关的图像列表SetItem设置某一项的属性SetItemImage建立图像与某一项的关联SetItemText设置某一项的文本初始化初始化 SetImageListSetImageList( ( CImageListCImageList * * pImageList, , intint n
41、ImageListType );); TVSIL_NORMALTVSIL_NORMAL TVSIL_STATETVSIL_STATE HTREEITEM InsertItemHTREEITEM InsertItem( LPCTSTR ( LPCTSTR lpszItem, , intint nImage, , intint nSelectedImage, ,HTREEITEM HTREEITEM hParent = TVI_ROOT, = TVI_ROOT, HTREEITEM HTREEITEM hInsertAfter = = TVI_LAST);TVI_LAST); HTREEITEM
42、InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct );typedef struct tagTVITEM UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPTSTR pszText; int cchTextMax; int iImage; int iSelectedImage; in
43、t cChildren; LPARAM lParam; TVITEM, FAR *LPTVITEM;typedef struct tagTVINSERTSTRUCT HTREEITEM hParent; HTREEITEM hInsertAfter;#if (_WIN32_IE = 0 x0400) union TVITEMEX itemex; TVITEM item; DUMMYUNIONNAME;#else TVITEM item;#endif TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;ExempTVINSERTSTRUCT tvInsert;tvInse
44、rt.hParent = NULL;tvInsert.hInsertAfter = NULL;tvInsert.item.mask = TVIF_TEXT;tvInsert.item.pszText = _T(United States);HTREEITEM hCountry = m_tree.InsertItem(&tvInsert);HTREEITEM hPA = m_tree.InsertItem (TVIF_TEXT,_T(Pennsylvania), 0, 0, 0, 0, 0, hCountry, NULL);HTREEITEM hWA = m_tree.InsertIte
45、m (_T(Washington),0, 0, hCountry, hPA);m_tree.InsertItem(_T(Pittsburgh), hPA, TVI_SORT);m_tree.InsertItem(_T(Harrisburg), hPA, TVI_SORT);m_tree.InsertItem(_T(Altoona), hPA, TVI_SORT);m_tree.InsertItem(_T(Seattle), hWA, TVI_SORT);m_tree.InsertItem(_T(Kalaloch), hWA, TVI_SORT);m_tree.InsertItem(_T(Yak
46、ima), hWA, TVI_SORT);消息处理消息处理 TVN_SELCHANGEDTVN_SELCHANGED获取当前选中的项获取当前选中的项HTREEITEM GetSelectedItem( )获取指定项目的文本获取指定项目的文本CString GetItemText( HTREEITEM hItem ) const获取父节点获取父节点HTREEITEM GetParentItem( HTREEITEM hItem )Exampvoid CMyTreeCtrlDlg:OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) NM_TREEV
47、IEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;CString str;HTREEITEM hitem = m_tree.GetSelectedItem(); /获取当前选中的项获取当前选中的项while(hitem) /当当hitem不为空时不为空时str= m_tree.GetItemText(hitem)+/ +str; /获取指定项目的文本获取指定项目的文本hitem=m_tree.GetParentItem(hitem); /获取父节点获取父节点m_edit.SetWindowText(str); /在编辑框中显示路径在编辑框中显示路径*pResult
48、 = 0;7.3 7.3 使用使用ActiveXActiveX控件控件 基于基于COMCOM(组件对象模型)和(组件对象模型)和DCOMDCOM(分布(分布式组件对象模型)技术式组件对象模型)技术 前身是前身是OLEOLE控件控件 容器(容器(ContainerContainer) 方法、属性和事件方法、属性和事件属性属性: :控件的外观和特征方法方法: :执行对控件的各种操作事件事件: :相当与普通控件的消息通知码 Click KeyDown安装安装ActiveXActiveX控件控件 拷贝相关文件到硬盘拷贝相关文件到硬盘动态连接库动态连接库(.DLL .EXE)(.DLL .EXE)帮助帮
49、助(.HLP)(.HLP)许可证许可证(.LIC)(.LIC) 注册注册WindowsWindows注册表中注册表中Regsvr32 COMM32.OCXRegsvr32 COMM32.OCX在在MFCMFC程序中使用程序中使用ActiveXActiveX控件控件 设置应用程序窗口为ActiveX控件的容器创建工程时选中ActiveX控件选项代码 在StdAfx.h中添加:#include 在InitInstance 函数中添加:AfxEnableControlContainer(); 在工程中添加ActiveX控件 在资源编辑器中使用在资源编辑器中使用ActiveXActiveX控件控件为工
50、程生成了该控件的封装类在控件栏中增加代表该控件的图标 设置设置ActiveXActiveX控件的属性控件的属性 使用使用DDX/DDVDDX/DDV机制为机制为ActiveXActiveX控件添加成控件添加成员变量员变量 调用调用ActiveXActiveX控件封装类成员函数控件封装类成员函数设置属性调用方法 响应响应ActiveXActiveX控件的事件控件的事件typedef struct tagVARIANT VARTYPE vt; unsigned short wReserved1; unsigned short wReserved2; unsigned short wReserved
51、3; union unsigned char bVal; / VT_UI1. short iVal; / VT_I2 . long lVal; / VT_I4 . float fltVal; / VT_R4 . double dblVal; / VT_R8 . VARIANT_BOOL boolVal; / VT_BOOL. SCODE scode; / VT_ERROR. CY cyVal; / VT_CY . DATE date; / VT_DATE. BSTR bstrVal; / VT_BSTR. IUnknown FAR* punkVal; / VT_UNKNOWN. IDispat
52、ch FAR* pdispVal; / VT_DISPATCH. SAFEARRAY FAR* parray; / VT_ARRAY|*. unsigned char FAR* pbVal; / VT_BYREF|VT_UI1. short FAR* piVal; / VT_BYREF|VT_I2. long FAR* plVal; / VT_BYREF|VT_I4. float FAR* pfltVal; / VT_BYREF|VT_R4. double FAR* pdblVal; / VT_BYREF|VT_R8. VARIANT_BOOL FAR* pboolVal; / VT_BYRE
53、F|VT_BOOL. SCODE FAR* pscode; / VT_BYREF|VT_ERROR. CY FAR* pcyVal; / VT_BYREF|VT_CY. DATE FAR* pdate; / VT_BYREF|VT_DATE. BSTR FAR* pbstrVal; / VT_BYREF|VT_BSTR. IUnknown FAR* FAR* ppunkVal; / VT_BYREF|VT_UNKNOWN. IDispatch FAR* FAR* ppdispVal; / VT_BYREF|VT_DISPATCH. SAFEARRAY FAR* FAR* pparray; /
54、VT_ARRAY|*. VARIANT FAR* pvarVal; / VT_BYREF|VT_VARIANT. void FAR* byref; / Generic ByRef. ; VT_EMPTYVT_UI1 An unsigned 1-byte character is stored in bValVT_UI1 | VT_BYREF A reference to an unsigned 1-byte character was passed. A pointer to the value is in pbVal.VT_I2 A 2-byte integer value is store
55、d in iVal. VT_I2 | VT_BYREF A reference to a 2-byte integer was passed. A pointer to the value is in piVal. VT_R4 An IEEE 4-byte real value is stored in fltVal. VT_R4 | VT_BYREF A reference to an IEEE 4-byte real value was passed. A pointer to the value is in pfltVal. VT_BSTR A string was passed; it is stored in bstrVal. VT_BSTR | VT_BYREF A reference to a st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中数学第一章统计1.5用样本估计总体1.6统计活动结婚年龄的变化学案北师大版必修3
- 2024-2025学年高中历史专题一中国传统文化主流思想的演变第1课百家争鸣讲义人民版必修3
- 2024-2025学年高中物理课时作业6示波器的奥秘含解析粤教版选修3-1
- 2024年普通高中学业水平选择性考试(福建卷)物理试题含答案
- 新型电动葫芦项目可行性研究报告建议书
- 2023-2029年中国低速电动车行业市场发展现状及投资策略咨询报告
- 2024山东稀有稀土金属冶炼市场前景及投资研究报告
- 大学生银行实习报告5
- 2025年信韦林行业深度研究分析报告
- 2024年准妈妈课堂行业市场调研分析及投资战略规划报告
- 付款申请英文模板
- 大同大学综测细则
- 生活会前谈心谈话提纲
- 比较思想政治教育(第二版)第十二章课件
- 普通外科常见疾病临床路径
- 人教版九年级下册初中英语全册作业设计一课一练(课时练)
- 2021新版GJB9001C-2017体系文件内审检查表
- 风筛式清选机的使用与维护
- 《计算流体力学CFD》
- 马克思主义宗教观课件
- 语文版九年级下册课外阅读练习
评论
0/150
提交评论