
MFC
工程师WWW
R
展开
-
MFC解决外部符号错误
解决外部符号错误:_main,_WinMain@16,__beginthreadex -!tmy`yK 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: m1+4# libcmtd.lib(crt0.obj) : error LNK2001: unresol转载 2009-09-24 18:31:00 · 1180 阅读 · 0 评论 -
学习mfc的一些方法
"MFC 微软基础类 MFC,微软基础类(Microsoft Foundation Classes),同VCL类似,是一种Application Framework,随微软Visual C++ 开发工具发布。目前最新版本为9.0(截止2008年11月)。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。 MFC 应用程序的总体结构通常转载 2009-10-26 16:18:00 · 1878 阅读 · 0 评论 -
windows下句柄的继续讨论(2)
句柄从来就不是只有Windows SDK才有的,也不是$MS发明的专利,在其他的Doors SDK,Chairs SDK,Beds SDK中都大量存在。但是,只有我们可爱的国内的windows和$MS崇拜者们给它起了一个可爱的名字“句柄”。一个令无数初学者魂牵梦绕,欲仙欲死的名字。我敢保证,一个用MFC编程了N久的人也不一定能说出句柄到底是个啥东东。 好吧转载 2009-10-27 10:03:00 · 1580 阅读 · 0 评论 -
MFC中的ClassWizard的使用
前面我们利用AppWizard创建了一个应用程序框架,它除了显示一个Windows的多文档界面以外,目前还没有任何实际的用处,我们必须为它添加实际的功能。事实上,大多数Visual C++程序员都是在这个应用程序框架的基础上从事添加各种功能模块的工作,包括设计自己的类,编写具有一定功能的成员函数。Visual C++的集成开发环境向用户提供了一个功能很强的操作类的工具—ClassWizard,我们转载 2009-10-29 14:49:00 · 2336 阅读 · 0 评论 -
MFC解惑
在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用转载 2009-10-30 09:11:00 · 2682 阅读 · 0 评论 -
VC++中的Dlg,App,Doc,view
Dlg 是Dialog 的缩写,对话框App类就是这个SDI作为"程序"的入口有点像c的Main函数View是指编辑区里面的事就是那块白色的中间区域他负责绘制和乡音一些消息Doc就有点像数据库,他保存着编辑数据,用于view的Redraw的时候用,还有保存文件。反正动态的编辑数据都放在Doc里面。1) 在View中获得Doc指针 CYouSDIDoc *pDoc=GetDocument();一转载 2010-01-13 10:18:00 · 2545 阅读 · 0 评论 -
如何实现最小化后出现右下角图标
(目前只能用在基于对话框的程序,SDI测试失败,待解决,在SDI中响应OnSize消息则可) 1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。(二)程序实现1、自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1)2、在MFC的(的dlg类中)OnSysCommand(转载 2010-01-17 21:52:00 · 4843 阅读 · 3 评论 -
ShellExecute用法 以及静态文本超链接
打开一个文件 :ShellExecute(NULL, NULL, "c://mfc类库详解.chm", NULL, NULL, SW_SHOWNORMAL);打开一个文件夹: ShellExecute(NULL, NULL, "c://", NULL, NULL, SW_SHOWNORMAL);在资源管理器中打开: ShellExecute(NULL, "explore", "c://",原创 2010-01-22 11:46:00 · 2275 阅读 · 1 评论 -
应用程序只有一个实例
在项目开发中,经常要求系统在同一时刻在同一台机器上只能运行一个实例,可以通过这种方式实现 在InitInstance()函数中添加如下代码(可以函数最前边添加,也可以放后边点,不过最好放最前边): Sample CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighl转载 2010-01-25 20:03:00 · 1664 阅读 · 0 评论 -
VC中用GDI函数实规高速平滑动画
摘要:许多游戏软件的开发中,实现高速平滑的动画需要许多比较深的技术,如:OpenGL、DirectX,并且可能还要开发人员有深厚的数学功底。但是,我们在开发一些小游戏,或为应用程序的界面实现一些动画效果,就可能不用以上这些技术了,我们更多的是用Windows API提供或MFC封装后的GDI绘图函数来实现。为此我们可不可以用GDI来实现高速平滑的动画呢?答案是肯定的。本文转载 2010-01-29 15:16:00 · 1728 阅读 · 0 评论 -
CSpinButtonCtrl使用说明
CSpinButtonCtrl使用说明CSpinButtonCtrl使用起来比较特殊,使用起来,需要注意一些地方.实际的教程也比较少.为了让后人少走弯路,这里写这篇文章以说明.1.添加EDIT控件2.添加Spin控件如果不是这样的顺序的话,使用ctrl+D改变Tab顺序,使spin紧靠edit后面3.在EDIT控件上面设置group属性(特别注意) 或转载 2010-03-05 10:21:00 · 3172 阅读 · 0 评论 -
VC 开机自动启动程序代码
很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software//Microsoft//Windows//CurrentVersion//Run。参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作) //实用代码一int C***Dlg::CreateRun(void){//添加以下代码转载 2010-03-06 14:53:00 · 2780 阅读 · 0 评论 -
客户区和非客户区指的什么?窗口客户区和视图客户区的区别
客户区和非客户区指的什么?窗口客户区和视图客户区的区别! 1,什么是客户区/非客户区? 2, 窗口(框架/frame)的客户区和视图(view)的客户区的区别?这些都是初学者很容易迷惑的地方,我也是很迷惑,不过经过一番折腾终于弄明白这些问题了.对于这些问题,我想只用两个图片来说明最直观!如下:1,在一个MDI(多文档)应用程序中每个概念如下图转载 2010-01-06 11:43:00 · 4331 阅读 · 0 评论 -
GDI绘图基本步骤总结
一、获得绘图的窗口句柄方法(详细参数及其调用可以看考MSDN):1、 HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lp转载 2010-03-22 14:26:00 · 2377 阅读 · 0 评论 -
VC++通用控件编程
滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间。通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的。滑动条控制的风格如下:TBS_HORZ 滑动条是水平方向的 TBS_VE转载 2010-05-18 13:19:00 · 2387 阅读 · 0 评论 -
MFC框架各部分指针获取方式
MFC框架各部分指针获取方式获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CView在CWinApp中AfxGetMainWnd()m_pMainWndAfxGetMainWnd()->MDIGetActive()AfxGetMainWnd()->GetActiveFrame()SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()MDI:AfxGetMainWnd()->MDIGetActive()->转载 2010-11-29 18:40:00 · 1651 阅读 · 0 评论 -
让对话框对UPDATE_COMMAND_UI生效
<br />问题:一般情况下我们用UPDATE_COMMAND_UI来修改菜单的状态(enable/disable, check/uncheck, change text),但这个方法在一个基于对话框上的菜单却没有效果。<br />void CTestDlg::OnUpdateFileExit(CCmdUI* pCmdUI) <br />{<br /> pCmdUI->Enable(FALSE); <br /> pCmdUI->SetCheck(TRUE); <br /> pCmdU转载 2010-10-15 17:48:00 · 1271 阅读 · 0 评论 -
qq临时会话代码
原理就是利用在网页中进行QQ会话这个功能来实现的. QQ用户需要在官网http://wp.qq.com/index.html开通QQ在线功能才能接收别人的临时会话,否则系统会提示先加好友. CString strQQNum = "3333333"原创 2011-09-15 17:08:19 · 4211 阅读 · 1 评论 -
CButtonEx的实现
要想修改CButton类按钮背景颜色和文字颜色,必须利用自绘方法对按钮进行重新绘制。这可以通过定义一个以CButton为基类的新按钮类来实现。以下为具体的实现方法:方法一:加入一个新类,类名:CButtonEx,基类:CButton。在头文件 CButto转载 2011-09-15 14:19:53 · 1897 阅读 · 0 评论 -
OnPaint()函数的作用原理
WM_PAINT是窗口每次重绘都会产生的一个消息。OnPaint是对这个消息的反应函数mfc 的 CWnd::OnPaint 没做什么,只是丢给系统处理。一 :先执行OnEraseBkgnd,擦除背景(如果想自绘控件,这个函数直接return TRUE转载 2011-09-26 09:56:12 · 2096 阅读 · 0 评论 -
MFC中的GDI绘图
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。 在Windows操作系统中,动态链接库C:\WINDOWS\system32\转载 2011-09-27 17:19:23 · 3919 阅读 · 1 评论 -
MFC操纵时间的常用方法
1定义一个CTime类对象 CTime time;2得到当前时间 time = CTime::GetCurrentTime();3 GetYear(),GetMonth(), GetDay(), GetHour(), GetMinute(), GetSecond(), G原创 2011-10-14 23:45:36 · 2420 阅读 · 0 评论 -
屏蔽CHtmlView\WebBrower控件右键菜单技巧合集
1.常被人鄙视的方法(PreTranslateMessage)经常见到有人问怎么屏蔽html的右键菜单,有人答用PreTranslateMessage函数拦截wm_rbuttondown消息,于是总会有人说这种方法怎么烂,@_@,我真不知道为什么,不过我想这也是一种方法呀原创 2011-10-14 23:48:20 · 2721 阅读 · 0 评论 -
WM_CTLCOLOR和OnCtlColor消息的用法
很多人都觉得自己的程序的界面不那么美观,往往VC默认产生的对话框比较单调,因此很多人往往找到很多其它的控件对对话框进行美化修饰,例如给静态控件设置字体,设置背景颜色等等,其实这些完全可以由VC自己的WM_CTLCOLOR消息来完成!WM_CTLCOLOR消息用来完成对EDIT原创 2011-10-09 11:11:29 · 1339 阅读 · 0 评论 -
消息反射
1、问题的提出: 在Windows3.x中,不存在WM_NOTIFY消息,控制子窗口的通知消息同菜单的命令消息及加速键消息一样,均使用WM_COMMAND来发送,此时,根据WM_COMMAND消息传递的做法,可知道含有如下的传递结构:wPar原创 2011-10-09 17:38:42 · 1123 阅读 · 0 评论 -
VC使用技巧
1、如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Pro原创 2011-10-18 19:47:01 · 1501 阅读 · 1 评论 -
WM_CLOSE WM_QUIT WM_DESTROY 三者的区别
WM_CLOSE WM_QUIT WM_DESTROY 三者的区别 收藏 一直以来,我都不是很明白这三个的区别,今天看了一写文章,才明白过来,一下是转载的文字:有三个消息看起来差不多,都是处理关闭的事情的。它们是WM_DESTROY,WM_CLOSE,和WM_QUIT。它们的确很相似,但你需要知道它们之间的不同!一个窗口或者应用程序应该被关闭时发出WM_CLOSE消息,当接收到WM_CLO转载 2009-11-09 08:35:00 · 2024 阅读 · 0 评论 -
如何在窗口程序中使用控制台(/subsystem /entry)
1. 原理首先我们来看一下linker的 /subsystem 选项该选项的语法形式如下:/SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]原创 2011-11-14 14:53:43 · 2869 阅读 · 0 评论 -
无标题栏窗口移动方法种种
移动标准窗口是通过用鼠标单击窗口标题条来实现的,但对于没有标题条的窗口,就需要用鼠标单击窗口标题条以外区域来移动窗口。有两种方法可以达到这一目标。方法一:当窗口确定鼠标位置时,Windows向窗口发送WM_NCHITTEST消息,可以处理该消息,使得只要鼠标在窗口内,Windows便认为鼠标在标题条上。这需要重载CWnd类处理WM_NCHITTEST消息的OnNcHitTest函数,在函数原创 2011-11-15 13:59:37 · 4220 阅读 · 1 评论 -
最简单的winMain程序
/*------------------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1998---------------------------------------原创 2009-09-24 18:22:00 · 1358 阅读 · 0 评论 -
DllMain详解
1 DLL的进入/退出函数 1.1 DllMain简介跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain。以“DllMain”为关键字,来看看MSDN帮助文档怎么介绍这个函数的。The DllMain function is an optional method of entry into a dynamic-link libra转载 2009-12-28 15:52:00 · 1280 阅读 · 0 评论 -
在MFC程序中显示JPG/GIF图像
myimgapp.zip - 298.98 KB如果你是一个使用VB编程的程序员,要在程序中显示JPG或者GIF 图像简直易如反掌,将图像控件拖到Form中,分分钟即可搞掂。但是C++程序员要显 示同样的图形却没有那么轻松,那么是不是要自己编写JPG解压缩代码呢?当然不用那么复杂啦!本文将针对这个问题讨论如何在MFC中显示JPG或者GIF 图像。 用VB写图像显示程序之原创 2011-10-27 10:43:37 · 1771 阅读 · 0 评论 -
利用Message Crackers简化消息映射
Message Crackers是Platform SDK提供的一组封装消息映射的宏,使用的时候需要包含头文件windowsx.h。传统消息映射映射使用一个大的的switch...case组合,这样会代码很臃肿。MFC的框架很好的解决了这个问题,但是有时候开发我们想只用纯SDK开发,这时候使用Message Crackers提供的宏则是一个不错的选择。消息映射用HANDLE_MSG宏原创 2011-10-08 17:05:19 · 1385 阅读 · 0 评论 -
动窗口的制作暨CSizingControlBar类的使用说明
本文在实现过程中,为了方便起见,参照VC 知识库《轻松实现类VC界面》。 一、实现原理图中右侧浮动窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,将CSizingControlBar原创 2011-10-28 11:07:59 · 1604 阅读 · 0 评论 -
DLL基础理论
DLL的优点简单的说,dll有以下几个优点:1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2) 便于不需编译的软件系统升原创 2011-10-28 11:09:25 · 1134 阅读 · 0 评论 -
Spy++原理初探
摘要:用Visual Studio搞开发的朋友对Spy++这个工具一定不陌生,它可以分析窗体结构、进程和窗口消息,对开发工作有很大辅助作用。我们需要研究某个对象时,只要调出其查找窗口,拖动探测器的指针到指定窗口/控件上释放即可。下面,笔者就和大家一起,用VC打造一个属于自己的Spy++。关键字:句柄 消息 子类化正文: 打开VC集成开发环境,建立一个基于对话框的工程。我们把这个工原创 2011-11-17 17:55:38 · 1548 阅读 · 0 评论 -
win7生成生成Detours.lib以及简单使用实例
Detours是微软开发的一个函数库,可用于捕获系统API。在用其进行程序开发之前,得做一些准备工作:一.下载Detours 在http://research.microsoft.com/sn/detours 可免费下载Detours二.安装Detours 一路NEXT三.生成Detours库 在安装后的文件夹下找不到直接可以拿来用的原创 2011-10-29 15:00:53 · 8120 阅读 · 0 评论 -
静态库Lib和动态库Dll
1.概论 1.什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接原创 2011-11-19 12:24:05 · 4720 阅读 · 3 评论 -
CxImage类库使用说明
一。CxImage类库简介这只是翻译了CxImage开源项目主页上的部分简介及简单使用。CxImage类库是一 个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage, PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许原创 2011-11-22 15:39:46 · 1612 阅读 · 0 评论 -
CFormView简介
MFC提供了一个名为CFormView的特殊视图类,我们称其为表单视图.表单视图是指用控件来输入和输出数据的视图,用户可以方便地在表单视图中使用控件.表单视图具有对话框和滚动视图的特性,它使程序看起来象是一个具有滚动条的对话框.在有些情况下,用表单视图比用普通视图更符合用户的需要,例如,在向数据库输入数据时,显然用表单的形式可以更习惯些. 用AppWizard可以方便地创建基于表单视图的原创 2011-11-02 10:30:40 · 4138 阅读 · 0 评论