随笔分类 -  MFC

存放一些学习MFC过程中的知识点、感悟、代码
摘要:网上搜了一下,有两种方法:1、使用GetSelectedItem()HTREEITEM hItem = m_treeCtrl.GetSelectedItem();CString strText = m_treeCtrl.GetItemText(hItem);MessageBox(strText);2... 阅读全文
posted @ 2014-12-04 00:27 冷冰若水 阅读(1102) 评论(0) 推荐(0) 编辑
摘要:Windows程序的生与死当使用者按下系统菜单中的Close命令项,系统送出WM_CLOSE。通常程序的窗口函数不拦截次消息,于是DefWindowProc函数处理它。DefWindowProc收到WM_CLOSE后,调用DestoryWindow把窗口清除。DestroyWindow本身又会送出W... 阅读全文
posted @ 2014-06-02 01:11 冷冰若水 阅读(300) 评论(0) 推荐(0) 编辑
摘要:写在前面的话:在工作中要实现这样一个功能,在一个树形控件中选择要发送消息的客户,添加到一个列表控件中,点击确定跳到一个信息发送页面如下图,在发送人编辑框中显示选择的客户,要实现的就是即允许用户删除用户列表中的用户,但是又不能让用户只删除一个用户标识的一部分,所以要对键盘操作进行控制。实现对键盘的控制... 阅读全文
posted @ 2014-05-16 14:41 冷冰若水 阅读(789) 评论(0) 推荐(0) 编辑
摘要:写在前面的话:因为自己是才接触网络编程,在工作中第一次遇到粘包问题,我还不知道它是叫粘包问题,所以被整的晕头转向,百思不得其解,自己的代码到底哪里出了问题,最后只能单步调试程序才发现接收方接收到的数据并不一定是按自己设想那样,一次接收整个数据包,当时就想到用文件长度来判断是否接收完文件,之后读了UN... 阅读全文
posted @ 2014-05-16 14:07 冷冰若水 阅读(691) 评论(0) 推荐(0) 编辑
摘要:转自:CEdit控件 详细介绍hohogpb2012 年 8 月 8 日0 CommentsCEdit类提供了Windows 编辑控件中的功能。编辑控件是一个子窗口矩形,用户可以向其中输入文本。可以通过对话模板或直接从代码中创建一个编辑控件。在两种情形下,首先调用CEdit构造程序构造CEdit对象... 阅读全文
posted @ 2014-05-14 11:22 冷冰若水 阅读(1298) 评论(0) 推荐(0) 编辑
摘要:一共设置了三个优先级,第一个正常优先级,第二个低优先级,第三个高优先级运行效果:代码: 1 void CTestProgressDlg::OnBnClickedBtnStart() 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 // 创建线程 5 m_hTh... 阅读全文
posted @ 2014-05-11 18:08 冷冰若水 阅读(273) 评论(0) 推荐(0) 编辑
摘要:刚开始以为实现起来很难,所以就在网上寻找实现的扩展控件,到最后才发现只要把CTreeCtrl 控件的Check Boxes 属性设为真就可以了,会在每个树形节点前添加一个CheckBox。多选已经实现了,下面就是取得选中的项了,在网上搜了以下也没有太好的办法,于是就自己动手写。大概思路是,遍历整个树... 阅读全文
posted @ 2014-05-10 14:51 冷冰若水 阅读(4492) 评论(0) 推荐(0) 编辑
摘要:实现很简单,直接上代码: 1 void CCheckBoxTreeDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult) 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 CPoint point; 5 UINT... 阅读全文
posted @ 2014-05-10 14:34 冷冰若水 阅读(1202) 评论(0) 推荐(0) 编辑
摘要:写在前面的话:在MFC的网络编程中,由于现在项目都是使用UNICODE编码,但是网络API的许多函数却只能接受const char*的参数,所以经常会遇到需要将char*转换为TCHAR*的时候,有一个函数可以实现,但是用起来比较麻烦,所以自己就对它进行了封装,形成自己的函数,记下来,以备后用。函数... 阅读全文
posted @ 2014-04-10 11:50 冷冰若水 阅读(2170) 评论(0) 推荐(0) 编辑
摘要:〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-系统找不到指定的驱动器。〖16〗-无法删除目录。〖17〗-系统无法将文件移到不同的驱动器。〖18〗-没有更多文件。〖19〗-介质受写入保护。〖20〗-系统找不到指定的设备。 〖21〗-设备未就绪。 〖2 阅读全文
posted @ 2014-04-09 22:47 冷冰若水 阅读(570) 评论(0) 推荐(0) 编辑
摘要:主要是两个函数的使用,gethostname();、gethostbyname();自定义两个函数GetLocalHostName获取计算机名、GetIPAddress获取IP地址 1 int CIPDlg::GetLocalHostName(CString &strHostName) 2 { 3 char szHostName[256]; 4 int nRetCode; 5 nRetCode = gethostname(szHostName, sizeof(szHostName)); 6 if(nRetCode != 0) 7 { 8 ... 阅读全文
posted @ 2014-03-30 17:53 冷冰若水 阅读(1167) 评论(0) 推荐(0) 编辑
摘要:进度条控件封装在CProcessCtrl类中1、SetRange和SetRange32方法来设置进度条显示范围。语法格式:void SetRange(short nLower, short nUpper);void SetRange32(int nLower, int nUpper);nLower:最小值,默认0;nUpper:最大值。SetRange方法设置进度条范围在短整型范围,SetRange32可在整形范围。2、设置进度条的方法SetPos(int nPos);nPos:表示设置的的新进度。返回值为之前的进度。StepIt();按照定义的步长前进。3、获得进度条的进度:GetPos() 阅读全文
posted @ 2014-03-26 17:00 冷冰若水 阅读(1177) 评论(0) 推荐(0) 编辑
摘要:1、寻找文件时,CFileFind类的使用。2、寻找目录时使用BROWSEINFO,其中包含了用户选中目录的重要信息。3、LPITEMIDLIST类4、目录选择对话框的使用SHBrowseForFolder配合BROWSEINFO结构体,使用方法如下:http://baike.baidu.com/link?url=62Gqm5c5HMz5T2Hw4WD6hEKJk3mtkgOyTzyreHBPdgya6x04Hwm02Vdof0LhjYG7KlISUyK1N8RT7JGSQn5bXq#2 百度百科5、一定要得对变量初始化,例如char buf[255] = {0};否则可能会出现字符串无效6、 阅读全文
posted @ 2014-03-25 21:30 冷冰若水 阅读(581) 评论(0) 推荐(0) 编辑
摘要:遍历文件目录,即把一个目录里的文件名都取出来。本文是CFileFind类的使用实例的笔记。下面的程序是从一个目录出发,把这个目录里的所有成员按着层次输出。代码如下:void TravelFolder(CString strDir, int nDepth){ CFileFind filefind; //声明CFileFind类型变量 CString strWildpath = strDir + _T("//*.*"); //所有文件都列出。 if(filefind.FindFile(strW... 阅读全文
posted @ 2014-03-25 10:40 冷冰若水 阅读(563) 评论(0) 推荐(0) 编辑
摘要:打开目录选择对话框要使用到API函数SHBrowseForFolder来实现函数原型为:LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);其中LPBROWSEINFO结构如下:typedef struct _browseinfo{ HWND h... 阅读全文
posted @ 2014-03-25 10:36 冷冰若水 阅读(1697) 评论(0) 推荐(0) 编辑
摘要:树形控件可以显示出各项之间的层次关系,因此在VC中很常用。1、树形控件的常用风格TVS_HASBUTTONS 在父项目前显示+、-。用户可以通过点击该符号来打开或收起子项TVS_HASLINES 在层次中用线条来连接各个项目名称。TVS_LINESATROOT 在根目录下的项目也用线连接。2、树形控件的数据结构1.HTREEITEM句柄树形控件的每个节点都可以由一个TREEITEM类型的句柄表示。我们通过CTreeCtrl类的成员函数对树进行访问和操作时都需要使用到HTREEITEM句柄。2.TVITEM结构体TVITEM结构体描述了树形控件节点的属性,定义如下:3.NMTREEVIEW结构体 阅读全文
posted @ 2014-03-24 22:00 冷冰若水 阅读(732) 评论(0) 推荐(0) 编辑
摘要:1.在MFC中,对资源的操作,通常都是通过和资源相对应的一个类来完成的,对话框资源也有相应的类。2.模态对话框的创建需要使用到CDialog::DoModal();来实现,返回值作为CDialog::EndDialog的一个参数 而模态对话框的关闭也是需要使用EndDialog来完成的。3.非模态对话框的创建需要使用到CDialog::Create();来实现,参数1是对话框模板的ID或者名字,参数2是父窗口对象指针。4.非模态对话框创建之后需要调用showwindow函数才能显示。而模态的则不用,domodal函数默认会用显示窗口的能力。5.模态对话框在运行到domodal();时会使程序停 阅读全文
posted @ 2013-10-26 15:43 冷冰若水 阅读(352) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示