MFC学习
文章平均质量分 85
辉哥聊职场聊家庭
一名有温度的IT从业者。 曾就职于ATM等top互联网大厂,央企研究所。 不定期分享职场 | 婚姻 | 育儿 | 个人成长心得体会,关注我,和我一起成长。
展开
-
单文档多视图切换方法
摘要:本文通过一个程序实例描述了在VC 6.0(vc2008可行)下如何在单文档程序中通过菜单动态控制多 个窗体的切换。 一、 引言 我们在编制程序中根据需求的不同会在程序风格上选择多文档、单文档或是对话框模式 ,对于单文档模式可能是我们使用比较多的,但有时我们想采用单文档的形式显示多个不同 的窗体,如作为数据库前台应用程序就会遇到此类问题,数据库由大量的表转载 2014-10-12 21:09:22 · 7408 阅读 · 1 评论 -
CListBox怎样让滚动条终保持在最下方
终保持在最下方原创 2014-04-28 14:29:46 · 4848 阅读 · 1 评论 -
CListBox类常见函数用法
1.构造函数CListBox( );例如:CListBox m_ListBox;CListBox *pListBox;2.生成函数BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );例如:CRect rect(0,0,100,100);m_ListB转载 2014-04-28 14:12:18 · 8579 阅读 · 0 评论 -
MFC VC 双缓冲绘图基本原理与实现,详细解释
MFC VC 双缓冲绘图基本原理与实现,详细解释MFC做了一些时间了,不得不面对 的是在界面上画图的。当然你可以直接搜索到能用的代码,并且基本能满足要求。不过这样总不是学习的态度。本着学习分享的态度,现做一些基本的分析吧。在MSDN上知道,我们画图的对象都是窗口的DC,WINDOWS的绘图更新时,总是用背景色先填充这个区域,然后才是我们的绘图代码,这就是说,转载 2014-04-11 15:43:06 · 877 阅读 · 0 评论 -
CPropertySheet 与CPropertyPage 的基本使用
CPropertySheet 与CPropertyPage 的基本使用今天花了相当长的时间来搞这个MFC中的两个类,原来自己在做TAB类型的窗口时,都是在窗口中增加一个CTabCtrl来实现 的,研究了下这个,网上有好多都不怎么详细,自己是对它们的总结吧。CPropertyPage 是一个从CDialog派生而来的一个类,基本功能与对话框类一样,CPrope转载 2014-04-11 15:44:19 · 7712 阅读 · 1 评论 -
串口调试助手和VSPE虚拟串口的一些用法
1.用VSPE让两个串口调试助手相互通信打开VSPE-->原创 2014-04-10 10:14:04 · 7446 阅读 · 1 评论 -
比较好的一段打开位图的函数
void CPicShowDlg::OnOpen() {// TODO: Add your control notification handler code hereCFileDialog dlg(TRUE,"bmp",".bmp",OFN_HIDEREADONLY,"BMP Files(*.bmp)|*.bmp||"); if(dlg.DoModal() != IDOK)原创 2014-04-11 10:12:20 · 979 阅读 · 0 评论 -
在MFC中手动添加消息处理函数PreTranslateMessage
一、添加消息处理函数PreTranslateMessage,此函数可以通过MFC ClassWizard添加BOOL CPreTranslateMessageDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message==WM_LBUTTONDOWN) { MessageBox("三三四四");转载 2014-05-09 12:19:48 · 23723 阅读 · 6 评论 -
自定义消息响应函数
手动添加消息和消息处理函数1、由于是用户自己定义的消息,所以首先要定义一个消息宏如下:#define WM_MYMESSAGE (WM_USER+1)注意:为防止用户定义的宏和系统定义宏冲突,所以系统提供了一个WM_USER,只要是大于WM_USER可供用户使用2、定义一个消息响应宏,即将此宏映射的函数,如下:ON_MESSAGE(WM_MYMESSAGE,OnMyMssage原创 2014-05-09 15:05:21 · 6840 阅读 · 0 评论 -
实例解说双缓冲
本文适合初学者(转自 VC知识库 Blog HateMath 的网上田园)昨天在论坛上,有人问起双缓冲的实现问题,想起网上这方面资料比较凌乱,而且多是 DirectX 相关的,今天特地在这里给大家简要的介绍一下双缓冲技术及其在 VC++ 的 GDI 绘图环境下的实现。1、Windows 绘图原理我们在 Windows 环境下看到各种元素,如菜单、按钮、窗口、图像,从根本上说,都是“转载 2014-03-26 10:20:00 · 952 阅读 · 0 评论 -
加载一张bmp图片作为MFC对话框的背景
先在资源里导入你的位图,分配好ID号;在OnPaint()函数中:if (IsIconic()) {……} else { //CDialog::OnPaint();把这个注释掉,不调用基类的OnPaint() CPaintDC dc(this); CDC memdc; memdc.CreateCompatibleDC转载 2014-04-08 14:25:28 · 2052 阅读 · 0 评论 -
StretchBlt函数和BitBlt函数的用法
StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像一、StretchBlt函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩。也即是将内存中的位图拷贝到屏幕上,并且可以根据屏幕画图区的大小来进行伸缩,适应响应的屏幕(或图像控件)BOOL StretchBlt( int x, int y, int nWidth,原创 2014-03-26 15:18:38 · 46845 阅读 · 1 评论 -
MFC文档的菜单栏中添加一个command响应函数
基于CFormView的应用程序,经常会在菜单栏中添加一个按钮,点击该按钮时,会弹出一个对话框~~具体实现方式如下1.新建一个对话框资源,同时新建一个对话框类和该资源对应,舍对话框类名为CTestDialog;2.在资源视图中找到Menu 这个文件夹,双击里面的文件IDR_MAINFRAME,在这里我们可以添加自己想要的菜单,也可把原来的【文件】、【编辑】等菜单给删掉~~添加菜单的原创 2014-03-25 17:14:08 · 7335 阅读 · 0 评论 -
取值函数getXX()、赋值函数setXX()的用法
set、get是访问私有变量的方法。为了安全性,Class中的属性一般设置为私有的private,但是为了给外界开放一个有限的可以访问私有变量的方法,就可以自己定义取值函数getXX()、赋值函数setXX()eg:在A类中,要获取B类某个成员变量的值,或者想给B中某个成员变量重新赋值,都可以自己定义getXX()、setXX()一、关于getXX()方法例原创 2014-03-25 18:23:06 · 6531 阅读 · 0 评论 -
关于GetCurrentDirectory函数的用法
函数原型为DWORDGetCurrentDirectory( DWORDnBufferLength, // size of directory buffer 缓冲区的长度 LPTSTRlpBuffer // directory bu原创 2014-03-25 17:55:53 · 60889 阅读 · 0 评论 -
error LNK2005: ×××× (★★★★) 已经在 ※※※.obj 中定义
今天在学习图像处理,从VC数字图像处理编程讲座中,kao原创 2014-04-04 16:27:19 · 1107 阅读 · 0 评论 -
图像处理中GlobalAlloc、GlobalLock、GlobalUnLock
GlobalAlloc、GlobalLock、GlobalUnLock 调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。 您可以用该指针来读写内存。 调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指转载 2014-04-04 15:22:25 · 807 阅读 · 0 评论 -
键盘消息处理(按下某个键,响应一个函数)
可以利用PreTranslateMessage(MSG* pMsg) 函数来对键盘消息进行处理例如:原创 2014-07-17 17:15:07 · 8447 阅读 · 0 评论 -
MFC中theApp的用法
在MFC应用程序中,在应用程序类原创 2014-06-27 16:24:20 · 12352 阅读 · 2 评论 -
消息队列处理函数ProcessMessage(),防止死机
/************************************************************************//* 消息队列处理函数 *//*******************************************************原创 2014-03-15 16:36:29 · 3350 阅读 · 0 评论 -
怎样协调好MFC中ondraw与ontimer的关系
本身两者没有关系,Ontimer是自己加进去的,你可以使用OnTimer触发的时候调用OnDraw而已Ondraw函数 绘制不怕窗口覆盖的图Ontimer函数 绘制临时显示的图, 重绘后会消失,(即,OnTimer主要是定时刷新或者临时性的绘制)原则:ontimer是定时器,只控制参数变化并通知OnDraw进行局部更新,自己不重画。这样就没有冲突了。优化来说,“局部重绘原创 2014-03-17 14:00:14 · 3232 阅读 · 1 评论 -
VC++常用代码总结(一)
//设置某个控件内容的样式 myfont.CreatePointFont(250, "宋体"); GetDlgItem(IDC_EDIT4)->SetFont(&myfont);//设置ListCtrl控件样式 m_ListResult.InsertColumn(1,"工作内容",LVCFMT_LEFT,324,5); m_ListResult.转载 2014-06-27 09:40:00 · 2251 阅读 · 0 评论 -
MFC中Invalidate(); 和UpdateWindow();的用法
1.Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘;UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,T原创 2014-03-09 19:54:18 · 15456 阅读 · 0 评论 -
如何阅读别人写的MFC程序
http://blog.163.com/shi_shun/blog/static/237078492010334571543/先熟悉业务逻辑和程序流程第一件事就先让它跑起来,跑跑,全部功能试一遍再说,再界面和看代码。(如果编译环境不对跑步起来,也可以只看代码,不过需要费点劲了) 先看初始化如:OnInitDialog()、OnCreate()等函数。再看有没有OnT转载 2014-03-07 11:32:46 · 3693 阅读 · 0 评论 -
MFC中的一些小知识
1.如果要在某个目标图像控件中画图,需要以下代码:CRect RawRect[4]; // 定义一个矩形数组,因为这里要在四个图像控件中画图//画原始图像Cwnd *pwnd;pwnd=GetDlgItem(IDC_PIC1);pwnd->GetClientRect(RawRect[0]); // 把第一个图像控件(IDC_PIC1)的坐标等信息保存在RawRect【0】原创 2014-03-18 15:25:57 · 865 阅读 · 0 评论 -
MFC中一些函数的用法
1.GetTickCount,函数。GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。DWORD GetTickCount(void);常常用来判断某个方法执行的时间,或用t2-t1来判断某个数据处理过程的耗时。原创 2014-03-18 15:44:06 · 985 阅读 · 0 评论 -
MFC中,怎样在一个特定的控件里画图
新建了一个基于对话框或基于CFormView的应用程序,拖入了一个长方形的Picture类型控件,控件的ID为IDC_PIC1,type为Frame,(Type还有Rectange、BitMap等类型)Sunken、Border为选中状态,现在想在该控件中画图,实现方法为,在OnDraw函数中加入以下代码:CRect rect;CWnd *pWin = GetDlgIt原创 2014-03-17 14:19:27 · 15067 阅读 · 3 评论 -
MFC中添加一张图片作为对话框(或CFormView)的背景
步骤:1.从VC6.0的Resources中添加一张bmp图片如图:右击Dialog,选择import,就可以导入一张图片到资源文件中,会默认生成一个Bitmap文件夹,资源ID号为IDB_BITMAP12.在对话框中拖入一个picture控件,type为Bitmap,IMAGE中找到IDB_BITMAP1(这是上一步生成的)点击确定,bmp图片会自动填充对话框中相应的原创 2014-03-18 14:13:08 · 24422 阅读 · 1 评论 -
MFC基于对话框的程序添加菜单&点击菜单弹出一个新的对话框
基于对话框的应用程序默认是没有菜单的,如果我们想为它添加菜单,可按以下方法原创 2014-04-30 10:48:26 · 20592 阅读 · 4 评论 -
修改MFC程序标题(转)
MFC程序的默认的标题是“无标题-title”,其中title是应用程序的名称,我们应如何修改MFC窗口标题来符合自己的要求? MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无标题”部分,可以重载文档类的该函数。窗口标题的后半部分可以通过SetWindowText设置,也可以编辑字符串资源中的IDR_MAINFRAME字符串,将第一转载 2014-06-12 10:12:46 · 5829 阅读 · 0 评论 -
如何检查内存泄露问题
简单说明了一下没有工具的情况如何运用VC库中的工具来检查代码的内存泄漏问题。一: 内存泄漏 内存泄漏是编程中常常见到的一个问题,内存泄漏往往会一种奇怪的方式来表现出来,基本上每个程序都表现出不同的方式。 但是一般最后的结果只有两个,一个是程序当掉,一个是系统内存不足。 还有一种就是比较介于中间的结果程序不会当,但是系统的反映时间明显降低,需要定时的Reboot才会正常。转载 2014-07-18 10:16:50 · 7958 阅读 · 0 评论 -
深入显出-理解程序接口
在机房收费系统的时候,就接触过接口,也时常听师傅说过,但是自己没有真正的查资料、进行学习。这次学习UML视频的时候又接触到了接口,这次必须学习了,发现接口的历史很有趣,也是很有意思。 程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务。 进行接口的介绍,必须介绍一下程序语言发展的历史才行,鲁迅先生说过“治学先治史”,明白了程转载 2014-06-27 11:45:05 · 790 阅读 · 0 评论 -
打印小票的一段程序
BOOL CPosDlg::PrintListCtrl(CListCtrl &list){ CDC dc; //把打印设备环境附加到DC对象 CPrintDialog pdlg(FALSE,PD_NOPAGENUMS|PD_NOSELECTION,this); BOOL bFindPrinter=pdlg.GetDefaults(); if(!bFindPrinter) retur原创 2014-07-17 17:29:20 · 2690 阅读 · 0 评论 -
MFC动态链接库的制作步骤和使用方法
MFC动态链接库1.制作的步骤: (1)新建MFC AppWizard(dll)工程,工程名为MFCDll,选择Regular DLL using shared MFC DLL类型。 (2)在生成的MFCDll.cpp文件后面增加下面几行:以下是引用片段: int sum(int a, int b) { return a+b; }转载 2014-07-17 19:49:37 · 13504 阅读 · 0 评论 -
cdialog::onclose(); 和 cdialog::onok();还有 showwindow(SW_HIDE);的具体区别
cdialog::onclose(); //点击关闭按钮产生事件和 cdialog::onok();//点击ok按钮产生事件还有 showwindow(SW_HIDE);//隐藏当前窗口原创 2014-07-17 11:54:16 · 2793 阅读 · 0 评论 -
位图(图像处理入门)
1,Windows的位图实际上是一些和显示象素相对应的位阵列。2,GDI位图是设备相关位图,用MS基本类库(MFC)中的CBitmap类表示的,依赖具体的设备。3,DIB设备无关位图,比GDI位图有许多编程优势。任何运行Windows的机器都可以处理DIB位图。DIB位图通常以.BMP文件形式保留在磁盘中,或作为资源保存在程序的EXE或DLL文件中。WIN32API只直接支持DIB转载 2014-04-01 21:39:19 · 1988 阅读 · 0 评论 -
(转)error LNK2001: unresolved external symbol _main解决办法
解决外部符号错误:_main,_WinMain@16,__beginthreadex 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol转载 2014-04-04 11:18:11 · 711 阅读 · 0 评论 -
VC数字图像处理编程(转载)
VC数字图像处理编程(转载)分类: 数字图像处理前 言 "图"是物体透射光或反射光的分布,"像"是人的视觉系统对图的接收在大脑中形成的印象或认识。图像是两者的结合。人类获取外界信息是靠听觉、视觉、触觉、嗅觉、味觉等,但绝大部分(约80%左右)来自视觉所接收的图像信息。图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需要。简单的说,依靠计算机对图像进转载 2014-04-03 18:56:57 · 2161 阅读 · 0 评论 -
VC add files to folder失效问题
VC add files to folder失效问题 VC—>add files to folder失效,郁闷了很久,最后网上一搜,都说的office2007惹的祸。抱着试一试的心理,卸载了刚刚装上没多久,才用习惯的office2007,重启后发现又好使了! 其实office2007还是很好用的,可惜了啊! 卸了转载 2014-04-15 18:57:22 · 1460 阅读 · 0 评论 -
win32 socket编程 示例(功能简单,完善)
最近在做的一个项目要用到网络通信方面的内容,于是自学了下win32socket,原来自己学过计算机网络,只了解网络各层的原理,但没有真正的编程来实现这些原理,哎,不过现在还来得及,下面是自己的一个示例,虽然简单,但了解了它,就知道了最基本的socket编程的方法!/*功能描述:与服务器连接后,可以不断的与服务器端通信(发送信息)当服务器关闭,程序将提示退出!*/转载 2014-03-19 17:41:32 · 12053 阅读 · 2 评论