收藏 分享(赏)

Visual C++ 开发应知必会.doc

上传人:HR专家 文档编号:7517613 上传时间:2019-05-20 格式:DOC 页数:5 大小:48.50KB
下载 相关 举报
Visual C++ 开发应知必会.doc_第1页
第1页 / 共5页
Visual C++ 开发应知必会.doc_第2页
第2页 / 共5页
Visual C++ 开发应知必会.doc_第3页
第3页 / 共5页
Visual C++ 开发应知必会.doc_第4页
第4页 / 共5页
Visual C++ 开发应知必会.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、用 C+解决实际问题是快速学习 C+的唯一途径。Visual C+ 2008 开发应知必会1. 如何修改按钮的 Enable 状态?1)将按钮连接变量,例如 m_ButtonTry2)m_ButtonTry.EnableWindow(0);2. 如何修改按钮的 Caption?1)将按钮连接变量,例如 m_ButtonTry2)m_ButtonTry.SetWindowTextA(“your are win“);3. 如何修改对话框的 Caption?:SetWindowTextA(“hello world“);4. 如何获取 CString 的长度?CString theString(_T(

2、“This is a test“);int sizeOfString = (theString.GetLength() + 1);LPTSTR lpsz = new TCHARsizeOfString;_tcscpy_s(lpsz, sizeOfString, theString);5. 如何判断一个文件是否存在?CFile theFile;TCHAR* szFileName = _T(“c:testmyfile.dat“);BOOL bOpenOK;CFileStatus status;if( CFile:GetStatus( szFileName, status ) )/ Open the

3、 file without the Create flagbOpenOK = theFile.Open( szFileName, CFile:modeWrite );else/ Open the file with the Create flagbOpenOK = theFile.Open( szFileName, CFile:modeCreate | CFile:modeWrite );6. 析构函数中能否调用类的成员函数?这是不可以的,这是由于在析构函数调用阶段,该对象已经不存在了或者不完整了,所以会出现访问冲突现象。7. String 与 Char*的相互转换CString转换为 cha

4、r*CString path;char * charpath = path.GetBuffer(); /这里可以对 path进行操作 path.ReleaseBuffer(); char*转换为 CStringchar *lpchar;path=(CString)lpchar;8. C+中 CString 到 int 的转换 用 C+解决实际问题是快速学习 C+的唯一途径。CString strTemp; int iTemp;strTemp=”123”;iTemp=atoi(strTemp.GetBuffer();9. 简单的消息对话框:this-MessageBox(LPCTSTR(“you

5、r Click me!“),LPCTSTR(“Caption“),0);10. Visual Studio 2008 创建向导时弹出 “Internet Explorer 脚本错误”:IE8 与 VS2008冲突问题解决方法,问题表现为:MFC 类向导添加类时,出现“当前页面的脚本发生错误”,进入 MFC类向导后上方有一个小黄条“此网站的某个加载项运行失败。请检查“Internet 选项“中的安全设置是否存在潜在冲突”,基类下拉框无项值,无法成功添加 MFC类或添加变量。针对这一问题解决办法是:添加一注册表项:HKEY_CURRENT_USERSoftwareMicrosoftWindowsC

6、urrentVersionInternet SettingsZones如果不存在 1000这一项的话,首先添加;在此项(1000)中添加一个 DWORD值名称为 1207,类型为 REG_DWORD, 数据为 0x00000000,即可解决问题。最后重新启动 VS2008就可以了。VS2008RegIE.reg附:对应注册表文件的内容Windows Registry Editor Version 5.00HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsZones1000“1207“=dword:00

7、00000011. 如何在 C+中执行外部程序?/调用计算器 ShellExecute(NULL,“open“,“calc.exe“,NULL,NULL,SW_SHOWNORMAL); /调用记事本 ShellExecute(NULL,“open“,“NOTEPAD.EXE“,NULL,NULL,SW_SHOWNORMAL); 12. 如何修改文本框的内容?13. 如何用 DOS 命令杀死进程?taskkill /im explorer.exe或者ntsd -c q -p PID 其中 PID为进程号14. ComboBox 使用注意事项?在设计 ComboBox时,要向下拉开空间,这样才能显

8、示出 ComboBox的下拉的项。15. 如何在 VS2008 中设置控件的上下层次(Zorder)?GetDlgItem(IDC_BUTTON2)-SetWindowPos( /将 IDC_BUTTON2置于 IDC_BUTTON1之前16. 如何确定 Combbox 或 Listbox 当前选取项?int nIndex = m_cbExample.GetCurSel();CString strCBText;m_cbExample.GetLBText( nIndex, strCBText);用 C+解决实际问题是快速学习 C+的唯一途径。17. 如何删除 Combbox 或 Listbox

9、控件中的所有项该操作可以利用函数 DeleteString(),需要指定被删除项的位置,如:m_cbExample.DeleteString(nIndex);也可以使用函数 ResetContent(),清除目前的所有项,如:m_cbExample.ResetContent();18. 如何删除 Combbox 或 Listbox 控件中可采用成员函数 clear();例如:m_MyComboBox.SetEditSel(0, -1);m_MyComboBox.Clear();19. Dialog 中 ccombbox 无法下拉查看列表的问题?这应该是 MFC的一个 Bug,解决方法是在对话框

10、设计中中点击 ccombbox右侧的向下箭头(这时鼠标变成上下箭头),然后可以拉长 ccombbox的下拉列表,再运行时就可以看到了。20. 如何在 C+中定义全局变量或每个模块都能访问的类?对于变量,如果想实现所有地方都能访问的功能,把这个对象定义为 C*App的 public成员就可以了,然后通过 theApp来进行访问,原则上全局变量能不定义就尽量不定义。对于类,在 CWinApp中定义,通过 theApp.xxx.xx的方式引用。或在 h文件中声明为 extern,可直接引用。注:在 h文件中默认为声明,在 cpp文件中默认为定义(实现)。21. 文件 stdafx.h 的妙用?全局类

11、,全局变量都应放在 stdafx.h中,因为默认所有 cpp文件都包含 stdafx.h,所以所有的文件都能访问到。22. extern 的妙用?学了这么多年 C+,知道 extern是什么意思,可从来不知道它是“什么意思”,今天算是知道它的妙用了,看经典书上说过,不要在.h 文件声明全局变量,原来如果声明在.h 文件里,它会为每个调用它的 CPP声明一块空间,为了想说明,他们用的是同一个空间,就用 extern。23. 如何通过消息传递数据或状态?1. 在 stdafx.h声明自定义消息号: #define WM_XXX (WM_USER+100); /(名称可任意)尽量不要修改 resou

12、rce.h,因为此文件会由系统自动维护,自行修改的内容可能被删除。2. 在接受消息的窗体头文件中声明消息处理函数:afx_msg LRESULT OnWM_XXX(WPARAM w,LPARAM r); /(名称可任意,参数不可省略)3. 在 cpp文件中添加消息映射:BEGIN_MESSAGE_MAP(CCadaTranCDlg, CDialog)ON_MESSAGE(WM_XXX, /后面是函数取址END_MESSAGE_MAP()4. 在程序必要的位置发送消息(仅支持当前窗口)PostMessage(消息名称,接收对象); /或者SendMessage(消息名称,接收对象); /或者24

13、. 如何获取窗体的句柄?定义一个全局 CWnd指针,然后在窗体初始化时对对话框取址。25. 如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在 CWinThread:m_pMainWnd中,调用 AfxGetMainWnd实现。AfxGetMainWnd() -ShowWindow(SW_SHOWMAXMIZED)/使程序最大化.26. 如何将 CString 全部大写或小写?用.MakeLower();和.MakeUpper();成员函数。用 C+解决实际问题是快速学习 C+的唯一途径。27. 指针*使用的要点 ?Delete pX; 会将 pX所指向的地址中的数据损坏,如果仅仅不用这

14、个指针了,用 pX=Null来避免其乱指和误用。建议指针不用后都设成 NULL,以避免内存泄露。28. C+中的动态数组?用 CArray或者 CList,可以用 SetSize指定初始维数,如果不指定会导致数据重建影响效率。29. MFC 中 List 、Array 和 Map 的区别?List类提供了一个没有索引(也就是这个列表比较难定位)的列表,可以从头或尾部或中间快速插入数据,Array 提供了一个动态尺寸,用整形数索引的数组,map 建立了一个索引,类似词典。类型 是否排序 是否索引 元素插入 元素搜索 重复元素List 是 否 快 慢 是Array 是 数字 慢 慢 是Map 否

15、关键字 快 快 否(关键字)/是(值)30. CComboBox:FindStringExact 的使用?int FindStringExact(int nIndexStart,LPCTSTR lpszFind ) const如果 nIndexStart=-1,则搜索全部列表,返回值是查到到字符串的位置,否则返回 CB_ERR (-1)。31. 标准 C+库在 VS2008 中如何使用?采用 using std:XXX的方式使用标准库,这与一般教材里面不同,不需要引用专门的函数库,而是采用命名空间的概念。例: using std:fstream;using std:ifstream;32. 在

16、 CString 或 char *中如何加入换行符?rn。其它转义字符包括:a 响铃(BEL) 007 b 退格(BS) 008 f 换页(FF) 012 n 换行(LF) 010 r 回车(CR) 013 t 水平制表(HT) 009 v 垂直制表(VT) 011 反斜杠 092 ? 问号字符 063 单引号字符 039 “ 双引号字符 034 0 空字符(NULL) 000 ddd 任意字符 三位八进制 xhh 任意字符 二位十六进制 33. CArray 应用示例CArray *p5;p0=new CArray;for(int i=1;iAdd(t);double y=0;for (in

17、t i=0;iGetAt(i);CString s;s.Format(“%d“,(int)y);this-MessageBox(s);delete p0;p0=NULL;34. 数组指针的应用示例(与 CArray 相比维数需提前确定)double * pMarry; /文件数据指针(指向指针的指针)pMarry=new double 1000;double x=0;for(int i=0;iMessageBox(s);35. 如何进行 Cstring 的连接和格式化?用“+”,格式化可用.Format 成员函数(但注意没有返回值)。36. 如何实现文件的拖拽?附:软件开发计划1、 LMS 数据格式转换程序(C+版)2、 IMC 数据格式转换程序(高速版)3、单通道振动台控制程序4、钢结构全寿命健康监测系统4、 16 通道振动台控制程序5、 8 通道岩土试验外控程序6、 16 通道多振动台台阵控制程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报