随笔分类 - MFC
摘要:MFC 动态拆分窗口,使用MFC自带的CSplitterWnd类进行操作。 其步骤就是: 1、在框架类添加此类型的成员函数。 2、覆盖OnCreateClent函数。 3、调用create函数。 BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs
阅读全文
摘要:要将一个中文网址转换为url编码格式的网址,非常简单,只需要使用Windows 提供的有一个函数即可。 C++/Windows/ATL #include<atlutil.h> //。。。。。。。。。。。。。。。。。。。。{ const TCHAR* val = _T("http://www.中文.c
阅读全文
摘要:条件: 首先项目是采用VS向导自动创建的MDI项目。 默认情况下,MDI项目具有以下几个类: 1、基于CwinApp的App类。 2、基于CMDIFrameWnd的框架类。 3、基于CMDIChildWnd的文档框架类。 4、基于CDocument的文档类。 5、基于CView的视图类。 一个空的M
阅读全文
摘要:使用CArchive进行数据串行化非常的方便。 CArchive持有一个CFile对象,通过此对象进行读写,那么所有基于CFile的子类,都可以使用CArchive来进行串行化。 示例: CFile file(_T("1.txt"), CFile::modeReadWrite); CArchive
阅读全文
摘要:MFC的消息映射目前原生不支持lambda的方式来写入,我们可以利用编译器来实现lambda的支持,因为lambda是一个静态类型,所以这里实现非常的简单, MFC的消息映射要求是一个成员函数,并且保证函数的类型。 我这里也是实现一个成员函数,这是一个模板函数: template<auto Fun,
阅读全文
摘要:要试MFC控件背景透明,需要重写消息WM_CTLCOLOR的处理函数OnCtlColor(CDC*,CWnd,UINT)。 框架使用该函数绘制每一个控件。 // 指示正在绘制窗口。 HBRUSH CMFCApplicationSDIView::OnCtlColor(CDC* pDC, CWnd* p
阅读全文
摘要:在MFC获取一个绝对路径文件的扩展名: 使用_wsplitpath_s 来获取, 示例: WCHAR buf[123]; _wsplitpath_s(L"C:\\2.txt",NULL,0,NULL,0,NULL,0,buf,123); MessageBox(buf); 此时获取的.txt,想要获取
阅读全文
摘要:COM封装了一套XML文件操作库。 下面将演示该库的使用 首先加载该库 #import "msxml3.dll" 然后使用该库 1 ::CoInitialize(0); 2 MSXML2::IXMLDOMDocumentPtr doc; 3 doc.CreateInstance(__uuidof(M
阅读全文
摘要:项目的实现: 1.实现多人聊天。 2.服务器程序自动独立运行,每个客户端发送的消息,只要其他连接到服务器的其他客户端均可以收到消息 3.基于TCP网络 首先,服务器的设计: 通过客户端连接服务器,客户端发送消息,由服务端自动转发给所有在线的客户端 代码实现: 创建一个socket对象 1 #prag
阅读全文
摘要:首先创建一个界面类,在界面类里面添加一个进度条做演示 1 #pragma once 2 #include <afxwin.h> 3 class CMyWnd : 4 public CFrameWnd 5 { 6 7 public: 8 DECLARE_MESSAGE_MAP() 9 afx_msg
阅读全文
摘要:服务器端界面: 创建基于CAsyncSocket的通信类 CNewSocket.h #pragma once #include <afxsock.h> class CNewSocket : public CAsyncSocket // 主Socket { public: CNewSocket();
阅读全文
摘要:开发环境:VS2019 我们创建以下效果的一个窗体。 有三个页面分别对应了不同的窗口, 这个窗口是一个继承了CMFCPropertySheet类的对象窗口,其原理,就是我们分别添加三个不同的属性表页,然后将这三个属性表页,添加到我们这个CMFCPropertySheet类的对象里面。 现在我们来实现
阅读全文
摘要:逃跑按钮,顾名思义就是点不到它。今天我们使用一种新的思路,就是当鼠标移动到此按钮时,隐藏此按钮,显示另一个按钮。 我们可以考虑一下,既然是通过鼠标移动信号处理的,那么我们应该又哪个类来处理这个信号呢?如果我们要让整个窗口来处理这个信号,那么鼠标在窗口内移动的时候按钮就会隐藏,而我们需要实现的是当鼠标
阅读全文
摘要:默认是没有消息的。我们直接讲步骤,不罗嗦 首先切换到资源视图,打开资源对话框点到我们的静态文本框控件(Static Text) 点开属性对话框,修改一下两个位置 1.ID 2.状态 然后直接右键我们的静态文本框控件添加消息处理函数,这个时候就可以发送消息了。
阅读全文
摘要:将一个Dialog窗口进行折叠 首先我们建立一个窗口,添加一个按钮,使用这个按钮来展示折叠效果 然后我们在中间画一个线,Picture Control控件 这个收缩按钮就是用来发送信号的,这个 Picture Control控件呢就是我们要折叠的位置 为收缩按钮添加事件响应处理函数 说一下上面的步骤
阅读全文
摘要:下面说一下怎么给MFC程序单文档窗口下的菜单添加一个图标 建项目这一块步骤就不说了。。。。。。。。。。。。。 我们在建完项目之后,一般都是以下样式的 我们实现像以下样式的,为“新建”这个菜单项添加一个图标 首先,将创建需要的资源文件,下面以位图资源为例,我们添加位图资源: 选择新建之后自己画一个差不
阅读全文
摘要:实现以下功能: 在单文档界面的View视图下输入字符,也就是当键盘键入某个字符后,把该字符输出到程序窗口 首先需要实现以下步骤: 1.光标的位置应该随鼠标点击位置而移动 2.输入的字符应该就是光标所在的位置 我们先实现第一个方法 我们使用CWnd的静态函数SetCaretPpos()函数,这个函数会
阅读全文
摘要:话不多说,效果如下 核心代码如下: void CTextView::OnDraw(CDC* pDC){ CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 //在
阅读全文
摘要:首先建立一个单文档项目 其他选项默认 我们实现以下效果 打开项目找到类视图,找到View类,我们在View类下面创建一个CButton类型的变量 然后找到view类的oncreate函数 使用create函数来创建按钮。 下面是按钮的一些样式表帮助文档 Create函数参数:
阅读全文