学习心得111范文.doc_第1页
学习心得111范文.doc_第2页
学习心得111范文.doc_第3页
学习心得111范文.doc_第4页
学习心得111范文.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习心得111范文 1 要想直接使用MFC工程中的Menu Dialog ToolBar等资源 可以进行两步操作1 将 rc文件中相关代码拷贝出来 2 将source h文件的部分相关define定义拷贝出来 注意sourc h文件和string table资源相关 string table资源也会被保存到rc文件中2 pch是pre piled header的缩写 即预编译头文件 stdafx h即为预编译头文件 Debug文件夹中最大的文件就是pch文件 它不是文本文件 不能 3 clw是class wizard的缩写 即类向导文件 如果有它则新建类 添加函数 变量 事件响应都比较方便 clw文件是可文本文件 4 CXTPDockingPane有一个函数Attach CWnd 这个函数是向停靠面板中添加控件的核心函数 5 要想有渐渐显示提示功能 请参考例子ActionsSample中App类中的相关代码 6 记住下面这行代码 CXTPControlButton pToolBar GetControls FindControl xtpControlButton ID MENUITEM BRIDGE SET TRUE FALSE SetStyle xtpButtonCaption 它是用来设置ToolBar上的按钮的样式 7 对话框程序中也可以添加MenuBar和ToolBar以及StatusBar等 只要在OnInitDialog 函数中添加相应的代码即可1 添加MenuBar CXTPCommandBars pCommandBars GetCommandBars pCommandBars SetMenu T Menu Bar IDR MENU 2 添加ToolBar CXTPToolBar pToolBar pCommandBars Add T Standard xtpBarTop pToolBar LoadToolBar IDR TOOLBAR 3 添加StatusBar if m wndStatusBar Create this m wndStatusBar SetIndicators indicators sizeof indicators sizeof UINT TRACE0 Failed tocreate statusbar n return 1 fail tocreate m wndStatusBar SetPaneInfo 0 ID SEPARATOR SBPS STRETCH 100 8 下面这个函数是选择文件夹 Browse 的使用实例void CBrowseDialogDlg OnBtnBrowse if UpdateData TRUE CXTBrowseDialog dlg dlg SetTitle T Select YourDirectory if m strDirectory IsEmpty TCHAR path MAX PATH STRCPY S path MAX PATH m strDirectory dlg SetSelPath path if dlg DoModal IDOK m strDirectory dlg GetSelPath UpdateData FALSE 9 注意CXTBrowseEdit类的使用 可以减少两个控件CEdit和CButton 如下图所示10 注意LoadCommandBars T CommandBars 的使用 有一个配套的函数用于保存CommandBarsSaveCommandBars T CommandBars 但是这两个函数是将上一次关闭的界面信息保存起来 以便这一次打开界面时快速载入 如果上一次保存的信息不对 即便你修改了代码 得到的结果仍然不对 这是你只需要在OnCreate函数中将LoadCommandBars T CommandBars 注释掉 如下 LoadCommandBars T CommandBars 11 注意虚函数virtual BOOLOnCreateClient LPCREATESTRUCT lpcs CCreateContext pContext 是用于创建客户端的显示方式 在单文档程序中常用 请参见例CaptionBar12 CXTCheckListBox可以实现在列表中添加单选按钮 参见例CheckListBox13 关于在界面中添加新的ToolBar或者在TooBar中添加一些下拉框或者滚动条等等控件 可以参见例子CommandBarControl14 例子drawcli显示如何在收缩面板中添加属性等 例子DynamicPanes显示如何添加按钮等 15 可以通过 project Add ToProject Components AndControls Visual C Components Tip ofthe day 来添加一个Tip ofthe day 16 要想使多文档程序初始化时就最大化 则需在app文件中添加如下代码m nCmdShow SW SHOWMAXIMIZED 最大化窗口pMainFrame ShowWindow m nCmdShow pMainFrame UpdateWindow 要想默认打开时没有任何文件 则应该添加如下代码CCommandLineInfo cmdInfo cmdInfo m nShellCommand CCommandLineInfo FileNothing ParseCommandLine cmdInfo 17 注意MFC资源中的String Table的作用 18 给程序设置ICON图标 以及标题文字 可以通过如下实现BOOL CMainFrame PreCreateWindow CREATESTRUCT TODO Modify theWindow classor styleshere bymodifying the CREATESTRUCTcs cs lpszClass AfxRegisterWndClass 0 NULL NULL AfxGetApp LoadIcon IDR ICON MAIN cs lpszName SCSP xx0212 1 return TRUE 19 可以通过返回XTP ACTION NOCLOSE阻止用户关闭停靠窗口 else if wParam XTP DPN CLOSEPANE Disable theuser fromclosing dockingpanes return XTP ACTION NOCLOSE 20 可以自己定义一个EventResponse类 即事件响应类 把所有的事件响应集中在一个类中 或者说一个文件中 这样便于查找和维护 EventResponse类最好继承自CWnd类 class CEventResponse public CWnd public AFX MSG CEventResponse NOTE the ClassWizardwill addand removemember functionshere afx msg voidOnButtonBrowse AFX MSG DECLARE MESSAGE MAP BEGIN MESSAGE MAP CBrgZoonSetDlg CDialog AFX MSG MAP CBrgZoonSetDlg ON BN CLICKED IDC BUTTON BROWSE CEventResponse OnButtonBrowse AFX MSG MAP END MESSAGE MAP 注意这种做法适用于某个类的事件响应特别多时 如果该类的事件响应很少 这种做法不值得提倡 另外注意命名冲突问题 21 XT库支持的预定义的Themes有如下8个 使用方式如下CXTPPaintManager SetTheme xtpThemeOfficeXP enum XTPPaintTheme xtpThemeOffice2000 xtpThemeOfficeXP xtpThemeOfficexx xtpThemeNativeWinXP xtpThemeWhidbey xtpThemeOfficexx xtpThemeRibbon xtpThemeVisualStudioxx xtpThemeCustom 但并不是每一个都能用 22 可以在一个MainFrame中载入多个ToolBar 请见例Custom Theme23 注意ON MAND RANGE宏定义的使用例子ON MAND RANGE ID THEME DEFAULT ID THEME RIBBON OnSwitchTheme 这行代码的意思是从ID THEME DEFAULT到ID THEME RIBBON以内的所有按钮的响应函数都为OnSwitchTheme这种做法的好处就是减少ON MAND宏 同样有如下例子 是关于宏定义ON UPDATE MAND UI RANGE的使用ON UPDATE MAND UI RANGE ID THEME DEFAULT ID THEME RIBBON OnUpdateTheme 24 在rc2文件中添加如下语句 include Styles OfficexxBlue OfficexxBlue rc 以支持officexx风格时 可能导致链接错误 错误原因为Unexcepted endof file 这时只需删掉rc2文件后面的代码 重新手动输入 include Styles OfficexxBlue OfficexxBlue rc 就能解决问题 至于为什么会这样 暂时不清楚 25 XT库为每一种控件提供了主题1 CXTPPaintManager SetTheme xtpThemeOfficexx 是设置ToolBar MenuBar StatusBar等的主题 预定义如下enum XTPPaintTheme xtpThemeOffice2000 xtpThemeOfficeXP xtpThemeOfficexx xtpThemeNativeWinXP xtpThemeWhidbey xtpThemeOfficexx xtpThemeRibbon xtpThemeVisualStudioxx xtpThemeCustom 2 m paneManager SetTheme xtpPaneThemeOfficexx 是设置停靠窗口的主题 预定义如下enum XTPDockingPanePaintTheme xtpPaneThemeDefault xtpPaneThemeVisualStudioxx xtpPaneThemeOfficexx xtpPaneThemeWinNative xtpPaneThemeGrippered xtpPaneThemeOfficexxVisio xtpPaneThemeVisualStudioxxBeta1 xtpPaneThemeOfficexxOutlook xtpPaneThemeWinExplorer xtpPaneThemeVisualStudioxx xtpPaneThemeOfficexx xtpPaneThemeOfficexxWord xtpPaneThemeOfficexxOutlook xtpPaneThemeCustom xtpPaneThemeVisualStudio6 xtpPaneThemeVisualStudioxxBeta2 xtpPaneThemeVisualStudioxx xtpPaneThemeVisualStudioxx xtpPaneThemeOfficexxVisio xtpPaneThemeOfficexxVisio 3 Button的主题enum XTPButtonTheme xtpButtonThemeStandard xtpButtonThemeFlat xtpButtonThemeUltraFlat xtpButtonThemeOffice2000 xtpButtonThemeOfficeXP xtpButtonThemeOfficexx xtpButtonThemeOfficexx 各类主题的数目是不同的 26 如何将多个停靠窗口绑定到一起 请参照如下代码 Create dockingpanes CXTPDockingPane pPaneClassView m paneManager CreatePane IDR PANE CLASSVIEW CRect 0 0 250 120 xtpPaneDockLeft CXTPDockingPane pPaneResourceView m paneManager CreatePane IDR PANE RESOURCEVIEW CRect 0 0 200 120 xtpPaneDockBottom pPaneClassView CXTPDockingPane pPaneFileView m paneManager CreatePane IDR PANE FILEVIEW CRect 0 0 200 120 xtpPaneDockBottom pPaneClassView CXTPDockingPane pPaneInfoView m paneManager CreatePane IDR PANE INFOVIEW CRect 0 0 200 120 xtpPaneDockBottom pPaneClassView m paneManager AttachPane pPaneResourceView pPaneClassView m paneManager AttachPane pPaneFileView pPaneClassView m paneManager AttachPane pPaneInfoView pPaneClassView pPaneClassView Select 这是将四个停靠窗口绑定在一个窗口上的方法 可以参考例子PaneAction27 关于DDX Control的使用 用户自定义的变量public LONG lUserID LONG realHandle NET DVR DEVICECFG m struCfg DDX生成的控件变量CComboBox n Channel CStatic m picplay 上面的这段代码容易引发错误 即根本打不开对话框 正确的做法是将DDX生成的控件变量移走 与用户定义的变量严格分开 28 关于OpenCV访问图像像素中的一些问题1 CvScalar s cvGet2D img y x 注意函数cvGet2D的第二和第三个参数所代表的意思第二个参数是y坐标 第三个参数是x坐标 这一点容易搞混 2 CvScalar s s存放了像素的RGB值 s val 0 s val 1 s val 2 分别代表B G R值 而不是RGB值 这一点也容易出错 3 CvScalar s s val 0 是double类型 如果要输出该值 应该用 f而不是 d或 u 这是因为double类型的长度为8个Bytes而int UINT的长度是4个Bytes 当采用 d或 u输出时 结果为0 29 善于使用sprintf fprintf函数注意sprintf在格式化输入完之后会自动添加一个null空字符 30 关于MFC中对话框的使用有时在编译的时候会出现error C2065 IDD DIALOG LOGIN undeclared identifiererror C2057 expected constantexpression这种找不到标识符的错误 这是由于在dlg的cpp文件中Include顺序出现了问题第一行应该是 include stdafx h 接下来就得注意了 app h的头文件应该在前 这是因为在app h的头文件中有 include resource h main symbols如果在 include stdafx h 之后直接 include LoginDlg h 就会导致没有 include resource h 所以编译时会出错 31 关于如何在MFC中实现文件拖放功能请参考E 文件夹中网页 给MFC程序添加文件拖放处理功能 yuvmen的专栏 CSDN博客 htm 注意 写程序的时候要在BEGIN MESSAGE MAP之后添加 ON WM DROPFILES 32 关于MFC Dialog与XT库的结合 如何在Dialog中实现停靠窗口注意一定要重载OnSize函数 否则绝对不会显示停靠窗口 即下面的这行代码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论