![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
文章平均质量分 87
hellokazhang
不羁的游戏开发者,喝得惯红酒,吃得了大排档,不轻易给自己设限。
展开
-
MFC(画图,孙鑫C++第四讲笔记整理)
孙鑫C++视频就是经典,下面是整理.1.在单文档中view挡在MainFrame的前面。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。 2.消息响应会在3处修改代码,1处是在头文件中,//{{AFX_MSG(CDrawView)afx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_m原创 2012-08-13 11:38:32 · 7296 阅读 · 0 评论 -
MFC(窗口,菜单栏,状态等的风格,孙鑫C++第九讲笔记整理)
1.修改外观和图标可以在MainFrm中进行,而修改背景和光标只能在View中进行。为什么?因为view的显示挡在了MainFrame的前面。 a.在MainFrame中 PreCreateWindow()中,在窗口创建之前,用重新注册窗口类的方法,比较麻烦。在PreCreateWindow()中修改 也可以用简单的方法,用全局函数 //cs.lpszClass=A原创 2012-08-16 00:05:40 · 9819 阅读 · 4 评论 -
MFC(线程同步与异步套接字,孙鑫C++第十六讲笔记整理)
1.事件对象:来实现线程的同步。与互斥对象一样均属于内核对象。 当人工重置有信号时,所有线程均得到信号,所以不能设为人工重置。代码就不贴了,通过创建匿名的事件对象,也可以让一个程序只能运行一个实例。 2.关键代码段实现线程的同步:类似公用电话亭,只有当电话亭里面没人了,其它人才可以再进去打电话。用了4个函数,这种方法比较简单!但缺点是如果使用了多少关键代码码,容易赞成线程的死锁原创 2012-08-22 00:55:01 · 6730 阅读 · 0 评论 -
MFC(ActiveX编程,孙鑫C++第十八讲笔记整理)
一:在VB中调用X控件,添加方法 project->Add components。另外可以用Object Browser来查看控件 二:在VC中创建X控件1.新建一个X工程名为Clock,注意一个文件中可以包含多个控件。2.保持缺省设置,完成。注意它生成的三个类,以及相关的接口。3.运行它。选择TSTCON32.exe作为容器。4.选择Insert Control,此时原创 2012-08-23 22:42:15 · 7404 阅读 · 1 评论 -
MFC(进程间的通信,孙鑫C++第十七讲笔记整理)
有四种方法1.剪贴板 a.创建个ClipBoard的对话框应用程序,加两EditBox和两个Button发送接收。 b.具体代码: 发送端代码: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); GetDlgItemText(IDC_EDIT_原创 2012-08-22 21:46:57 · 9060 阅读 · 1 评论 -
MFC(动态链接库编程,孙鑫C++第十九讲笔记整理)
1.DLL简介,动态库,静态库。动态库节约磁盘空间,静态库体积大。可以用多种语言编写DLL文件。动态库有两种加载方式:隐式调用和动态加裁! 2.新建一个DLL1的dll工程,加入一源文件名为dll1.cpp,加入add和subtract两个函数,注意此时须在函数名前加_declspec(dllexport),并且编译。用dumpbi -exports dll1.dll查看其导出的函数,原创 2012-08-24 14:06:15 · 10232 阅读 · 0 评论 -
MFC(HOOK和数据库访问,孙鑫C++第二十讲笔记整理)
1.Hook简介:作用是拦截某些消息,关键函数是SetWindowsHookEX() 2.示例程序: a.新建一基于对话框工程,InnerHook,此过程的钩子是只拦截本进程的。 b.在OnInitDialog()中添加代码: g_hWnd=m_hWnd; g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCu原创 2012-08-25 20:16:09 · 5688 阅读 · 2 评论 -
CRichEdit中插入bmp图像
1在对话框中拉入一个RichEdit控件。为它关联一个控件值CRichEditCtrl m_rch;2加入2个头文件#include #include 3在对话框中,添加成员函数void CDialogDlg::InsertBitmap(CString *pBmpFile) { HBITMAP bmp; //创建HBITMAP转载 2012-09-22 18:49:36 · 1546 阅读 · 0 评论 -
对话框使用RichEdit
VC中在对话框上使用Rich Edit控件前一定要用AfxInitRichEdit()初始化1.设置edit只读属性 方法一: m_edit1.SetReadOnly(TRUE); 方法二: ::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);转载 2012-10-25 09:02:17 · 1439 阅读 · 0 评论 -
MFC(网络编程,孙鑫C++第十四讲笔记整理)
一.TCP流式套接字的编程步骤在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。3、将套接字绑定到一个本地地址和端口上(bind)。4、将套接字设为监听模式,准备接收客户请求(listen)。5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字原创 2012-08-20 10:38:57 · 7436 阅读 · 1 评论 -
MFC(多线程与聊天程序,孙鑫C++第十五讲笔记整理)
1.多线程介绍,略 2.一个简单的多线程程序MSND中参数[in]和[out]的含义要注意#include #include DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data);DWORD WINAPI Fun2Proc( LPVOID lpParameter // thread data);原创 2012-08-20 21:09:00 · 10777 阅读 · 1 评论 -
MFC(对话框,孙鑫C++第七讲笔记整理)
1.如果在SDI中要调用对话框 a.先插入一个对话框资源; b.然后在ClassWizards中为其创建一个类。其目的是比较方便为添加按纽和消息响应函数。 c.然后实例化它。在实例化时,必须将其头文件包含进去。 2.创建非模态对话框,注意它不能是局部变量。当点击非模态对话框的OnOK按纽时,它并没有关闭,而是隐藏了。需要调用destroyWindow(). 3.一个对象原创 2012-08-14 23:25:55 · 2028 阅读 · 1 评论 -
MFC(菜单,孙鑫C++第六讲笔记整理)
1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:a.View;b.CDOC;c.CMainFrame.d.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。原创 2012-08-14 15:45:50 · 5453 阅读 · 1 评论 -
MFC中的OnDraw和OnPaint的对比
学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下。OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能转载 2012-08-14 10:14:57 · 1027 阅读 · 0 评论 -
MFC初窥(MFC运行机制,孙鑫C++第三讲笔记整理)
有了一定的Windows32编程知识,就能学习MFC了。在学习MFC之前,一定要弄明白Windows32编程中的消息循环是怎么回事。MFC实际上就是对Windows API函数的封装。 在Windows程序设计编程中,创建一个窗口要经历下面四个过程 (如有不懂,请看博客 win32初窥)1设计一个窗口类;2注册窗口类;3创建窗口;4显示及更新窗口。 同样,M原创 2012-08-12 19:43:23 · 4465 阅读 · 0 评论 -
MFC(文本编程,孙鑫C++第五讲笔记整理)
以下是第五讲的主要内容(文本输入输出,要先设置光标位置,然后再输出文本)1.CWnd::CreateSolidCaret创建插入符,ShowCaret()显示插入符。GetTextMetrics(),获得当前字体的一些信息。CWnd::CreateCaret()创建图象插入符 bitmap.LoadBitmap(IDB_BITMAP1);//此处的bitmap为成员变量!!! Crea原创 2012-08-13 18:40:05 · 3739 阅读 · 3 评论 -
MFC(继续对话框,孙鑫C++第八讲笔记整理)
1.如何改变按纽的字体?在对话框的属性中改变字体的属性即可 2.逃跑按纽的实现 1.从CButton派生一个类,CWeixinBtn 2.将IDC_EDIT1关联成员变量m_btn1,类型为CWeixinBtn,注意要包含头文件。 3.在CWeixinBtn中加一个指针成员变量CWeixinBtn *pWeixinBtn,然后将其地址初始化。 4.在新类中增加鼠标原创 2012-08-15 19:23:41 · 3323 阅读 · 4 评论 -
MFC(继续画图,孙鑫C++第十讲笔记整理)
1.画图: a.创建四个菜单,为其添加消息响应; b.在View中添加m_DrawType,保存绘画类型; c.增加成员变量,m_PtOrigin,当按下鼠标左键时,保存此点; d.在OnLButtonUp中画点,线,矩形,椭圆,别忘记设置成透明画刷 2.为其添加一个设置对话框(线型和线宽) a.创建对话框,为其创建一个新类关联它; b.为其中的线宽关联原创 2012-08-16 23:38:40 · 7808 阅读 · 2 评论 -
MFC(绘图与保存,孙鑫C++第十一讲笔记整理)
前面画图步骤直接上略了,因为跟第十讲的步骤是一样的,这里不再累赘1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型。添加LButtonDown和Up消息。 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据。为此创建一个新类来记录绘画类型和两个点。class CGraph {public: CPoint m_ptOrigin;//起点 CPoint原创 2012-08-17 23:05:52 · 9823 阅读 · 3 评论 -
MFC(文件操作,孙鑫C++第十二讲笔记整理)
1.常量指针与指针常量的区分 char ch[5]="lisi"; const char *pStr=ch;//const在*之前,表明指针指向的内容为常量,即为常量指针 char * const pStr=ch;//const在*之后,表明指针的地址不能改变,即为指针常量 明白? 2.对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.t原创 2012-08-18 16:54:51 · 6831 阅读 · 1 评论 -
VC++窗口对象和句柄
句柄是窗口资源的标识,它标识资源在系统中所占用的内存块,应用程序通过窗口句柄对窗口进行操作。除了窗口句柄之外,任何一种资源都有它自己的句柄,比如光标句柄、位图句柄等。窗口ID是窗口在应用程序中的唯一标识,通过窗口ID可以获取窗口句柄。-------------------------------------------------------------------------------转载 2013-07-20 14:41:07 · 1693 阅读 · 0 评论