![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
zhongyu627
这个作者很懒,什么都没留下…
展开
-
MFC中调用WPF教程
WPF是微软主推的新一代桌面程序开发技术, 它极大加快了程序界面开发,也增强了界面的用户体验,至于详细的介绍大家可以google, 本文主要还是介绍如何在vc中处理wpf数据和事件.开发工具嘛vs2008+sp1+[Blend].1.新建一个项目MFCHostWpf, 建立2个工程, 一个为vc对话框的工程MFCDlgDemo,另一个为C#普通应用程序的工程WPFDemo.如图所示:2转载 2012-04-19 17:45:13 · 818 阅读 · 3 评论 -
使用GDI+缩放图片文件
总结一下个人所知道的使用GDI+缩放图片的方法. 方法一:最简单的,使用GetThumbnailImage,这个方法的局限性对支持内嵌缩略图的图片文件无效. 因为MSDN中提到:如果图片文件有内嵌的缩略图,那么就提取这个缩略图返回,否则就缩放原图片,不过我想对位图还是安全的:Bitmap * image = new Bitmap(L"MagicLinux.bmp");Image*转载 2012-03-07 18:30:51 · 321 阅读 · 0 评论 -
CListCtrl 用法大全
1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2.转载 2012-03-07 10:05:17 · 309 阅读 · 0 评论 -
VC/MFC加载图片(JPG、JPEG、BMP)
//加载jpg图片int m_TotCount;CImageList m_ImageList;CListCtrl m_List;HIMAGELIST hScreens = ImageList_Create(THUMWIDTH, THUMHEIGHT, ILC_COLOR32, 0, 1);m_ImageList.Attach(hScreens);m_list.SetIm转载 2012-03-06 13:40:42 · 1221 阅读 · 0 评论 -
VC中ListCtrl经验总结【转载】
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第二点,这个是参照《Eff转载 2012-03-05 15:14:53 · 228 阅读 · 0 评论 -
将非模态对话框显示为模态对话框
1、意图 有时候我们希望将非模态窗口显示为模态窗口。比如在IE的“文件”菜单下选择“打印”,弹出的“打印”对话框就是非模态的(也许我们不太清楚Microsoft的设计意图,一般来说这里的“打印”对话框应该是模态的)。这种情况下如何将“打印”对话框显示为模态的呢(这个对话框对我们来说是Black Box)? 2、简单实现 简单地说,模态窗口显示时,其父窗口是被Disable的,所以转载 2012-03-01 16:05:12 · 239 阅读 · 0 评论 -
【MFC应用】让对话框内的控件在窗体大小发生变化时随之变化
让控件跟着窗体的大小变化其实是不难的,只需要在WM_SIZE消息的处理函数里做一些工作就好了。之所以提出来,是因为自己一开始在做的时候对一系列的坐标太不容易搞清楚,所以,总会带来每个控件不知道要按照哪个坐标信息做调整的困惑。写下WM_SIZE消息的处理过程,廖以告诉自己不要忘记~~首先为窗体增加WM_SIZE的处理函数。这个简单,不在赘述。OnSize函数的实现如下:void CDis转载 2012-02-29 17:19:25 · 263 阅读 · 0 评论 -
ClistCtrl 的用法
1、创建create① 绝对大小CRect(10,10,600,200) CListCtrl * list1 = new CListCtrl; list1->Create(WS_VISIBLE | LVS_REPORT | LVS_ALIGNTOP | WS_BORDER | WS_CHILD, CRect(10,10,600,200),this,1101/*ID*/);② 相对大小rcl转载 2012-03-01 15:29:04 · 414 阅读 · 0 评论 -
MFC90条技巧-带目录(转自网上)
1."属性页的添加: 2."List Control中标题栏(Column)的添加: 3."ToolBar和StatusBar中控件的添加: 4."通过Control创建的控件,对其属性的动态控制: 5."窗口的分割与停靠: 6. ①怎样在程序开始的时候让它最大化? ②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能? ③如何在显示窗转载 2012-02-20 13:47:25 · 1264 阅读 · 0 评论 -
Visual C++编程封装ADO类
1 引言在过去几年中,微软公司相继推出了几种数据访问技术,先是DAO(Data Access Objects),然后是RDO(Remote Data Objects),现在是ADO(ActiceX Data Objects)。ADO是Microsoft数据库应用程序开发的新接口,是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问转载 2012-02-27 10:01:38 · 246 阅读 · 0 评论 -
VC6.0 MFC 隐藏任务栏图标和状态栏图标
最近想写一个小程序,用来干点“活”,需要隐藏任务栏和状态栏图标,找了好多都不好使,找到了一篇文章,操作简单,仅需十来行代码就实现了,赶紧收藏!……^_^系统:windows XP环境:VC++ 6.0很多文章都说到要使用隐藏框架或是隐藏对话框做为要隐藏的对话框的父窗体。其实不要。[说明:文中代码仅在基于对话框的MFC程序中调试通过,其他类型工程未试验过]转载 2012-02-18 12:38:40 · 3045 阅读 · 0 评论 -
如何让ATL支持MFC?
ATL的出现旨在让程序员用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持。如果我们在ATL工程里面使用了CString、CFile这些常用的基础类的时候调试都不能通过,为什么?因为ATL没有支持MFC,那我们该怎么办?让ATL支持MFC我们有两种方法,方法一:在新建ATL工程的时候选择支持MFC;方法转载 2012-03-08 09:47:32 · 378 阅读 · 1 评论 -
MFC框架程序中OnIdle
MFC框架程序中OnIdle作者:小 楼 一 夜 听 春 雨 | 出处:博客园 | 2012/3/2 18:20:04 | 阅读7次先看下MSDN对OnIdle()介绍:CWinApp::OnIdleOnIdle is called in the default message loop when the application's message queue isem转载 2012-03-12 15:28:46 · 376 阅读 · 0 评论 -
C++中doulbe/float/int转为CString方法
在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明: %c 单个字符 %d 十进制整数(int) %ld 十进制整数(long)转载 2012-04-28 10:34:28 · 2244 阅读 · 1 评论 -
软件开发方案设计
窗口风格(Window style)WS_BORDER有边框窗口WS_CAPTION 必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用。指示窗口包含标题要部分。WS_CHILD 说明窗口为子窗口,不能应用于弹出式窗口风格(WS_POPUP)。WS_CHILDWINDOW同WS_CHILD。WS_CLIPCHILDREN 绘制父原创 2012-04-28 12:04:05 · 376 阅读 · 0 评论 -
MFC 动态创建多个按钮
由于创建的控件个数是读取数据库,每次都可能不一样,故采用动态创建控件的方法创建控件,如下图创建了多个复选框和文本框,点击确定按钮时如何知道哪些复选框被选中,查看MSDN知估计是用GetState()但是不知道如何使用,同时,哪些文本框的内容是什么,附上代码供各位参考1.创建成员变量CButton *pButton;CEdit *pEdit;2.OnInitDialog()中创建部分转载 2012-04-26 15:31:42 · 2028 阅读 · 0 评论 -
使用GDI+在内存中转换图片类型
微软新推出的GDI+功能强大,本文仅对图片转换加以讨论,不足之处请大家指出,本人QQ:394777271。图片类型的转换支持:bmp、dib、png、gif、jpeg/jpg、tiff、emf等。以下是详细步骤。 首先,在StdAfx.h中静态调用diplus.lib,即由编译系统完成对DLL的加载,应用程序结束时卸载DLL的编码。如下:#ifndef ULONG_PTR转载 2012-03-22 19:18:26 · 275 阅读 · 0 评论 -
VC2008在CMFCToolBar工具栏中加入组合框
如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:To add a combo box button to a toolbar, follow these steps:1. Reserve a dummy resource ID for the button in the parent toolbar resource.2. Construct a C转载 2012-03-19 12:49:32 · 1769 阅读 · 0 评论 -
关于vs2008 SP1中CMFCToolBar的一些事儿
话说昨天解决了MFC跨线程操作控件的问题,我满以为今天可以free一回,玩玩Linux、学学Vim、再准备一下毕业论文的事情,但还是有事情要做,然后又是“被”MFC郁闷了一天。先介绍一下总体的情况。我们项目客户端的开发环境是VS2008+SP1,用的是MFC类库,里面居然用到了CMFCToolBar、CMFCMenuBar以及Appearance变化等的SPI新特性。说“居然”是因为这些东转载 2012-03-19 11:40:33 · 1806 阅读 · 1 评论 -
CMFCToolBarComboBoxButton恼人的VS2008的Combobox
准备工作:在BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)中添加消息响应ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)在头文件中定义消息函数:afx_msg LRESULT OnToolbarReset(WPARAM,LPARAM); 1、在CMainFram的OnToo转载 2012-03-19 11:38:44 · 77 阅读 · 0 评论 -
随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有“上网助手”,但它要在能上网时才起作用,我想在不能上网时来对系统进行清理,于是写了一个叫
随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有“上网助手”,但它要在能上网时才起作用,我想在不能上网时来对系统进行清理,于是写了一个叫IEURLEnder---IE地址终结者 的程序。 首先介绍一下清除IE地址栏的原理。 大家知道,我们在机器上的所有操作,注册转载 2012-04-05 09:54:28 · 733 阅读 · 0 评论 -
文件复制进度条
SHFILEOPSTRUCT fileop; fileop.hwnd = this->m_hWnd; fileop.wFunc = FO_COPY; fileop.pFrom = "d:\\temp"; fileop.pTo =转载 2012-03-14 12:57:23 · 874 阅读 · 0 评论 -
VC界面库(转载)
CJLib(mfc扩展开发包是xtreme toolkit的前生,但xtreme toolkit收费了)BCGControlBar(收费,mfc扩展开发包(kuo zhan kai fa bao),功能很强大)SkinMagic(收费,看起来像Office)AppFace(收费,支持mfcVCLATL WTL 框架 )SKin++(收费,界面很好看)USki转载 2012-03-13 17:26:34 · 445 阅读 · 0 评论 -
VC中调用外部程序方式总结
目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess》,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的转载 2012-02-18 08:56:05 · 294 阅读 · 0 评论 -
MFC 分割窗体(Splitter Windows)
MFC 分割窗体(Splitter Windows)文档描述MFC中的CSplitterWnd类,该类用来支持窗体的分割和管理分割后每一个子窗格(pane)的大小1 分割窗体风格(Splitter Styles)CSplitterWnd类支持2种不同风格的分割窗口1.1 静态分割(static splitter)分割的窗格(pane)在分割窗体(splitter w转载 2012-02-17 09:58:51 · 1357 阅读 · 0 评论 -
VS2008中VC添加右键菜单
在VC6.0中可以通过工程->增加到工程->Visual C++ Component里面的Pop-up Menu,但是在VS2008中没有了这个功能(费了好大的功夫才弄明白,从VC6.0到VS2008的变化太大),只有自己写了。我们先在资源视图中制作一个菜单,然后开始为C*View类添加一个右键响应菜单,获得鼠标的位置,在鼠标位置弹出菜单即可。具体代码如下void C菜单View:转载 2012-02-17 16:55:58 · 2036 阅读 · 1 评论 -
MFC的消息处理函数
MFC的消息处理函数1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()转载 2012-02-08 10:16:04 · 228 阅读 · 0 评论 -
CMFCMenuBar 菜单项 前面的对勾响应
//MainFrm.h// ... ... bool isEnable; // if the submenu is enablebool isChecked; // if the submenu is checked// ... ...// define On_Update_Menu handlerafx_msg void OnUpdateMenu(CCmdUI* pCmd转载 2012-02-07 18:38:49 · 703 阅读 · 0 评论 -
mfc中view doc类指针的相互获取【转】
下面一段代码,就是利用CDocTemplate、CDocument和CView之间的存取关系,遍历整个文档模板、文档以及视。 CMyApp * pMyApp = (CMyApp *)AfxGetApp(); POSITION p = pMyApp->GetFirstDocTemplatePosition(); while(p!转载 2012-02-07 17:31:33 · 1146 阅读 · 0 评论 -
Expression: _CrtIsValidHeapPointer(pUserData)
打算把编程中出现的比较麻烦的问题都记下来,一来以后出现同样的问题有证可查,二来如果有人遇到同样的问题,那么就不用那么费劲自己死磕了~Expression: _CrtIsValidHeapPointer(pUserData)void CImageRecView::OnFileColhistogram() { // TODO: Add your command handler co转载 2012-02-07 16:40:55 · 472 阅读 · 0 评论 -
将CFormView嵌入到CDockablePane中(VC2010)
第一步:将两个空白的CDockablePane嵌入到MainFrm中:1,利用类向导,添加基类为CDockablePane的类CDock;2,在MainFrm.h中添加Dock.h的头文件;并派生子类protected:CDock m_dock;CDockablePane* m_pTabbedBar;3,在MainFrm的OnCreate()里面添加:(最好接着Enable转载 2012-02-07 16:02:01 · 2945 阅读 · 3 评论 -
建立不规则窗体的主要代码
void Tranc(void){ CDC MemDC,*pDC=NULL;//当前窗体设备和临时设备 CRect rcWnd;//当前窗体矩形范围 COLORREF bgColor,curColor;//背景色和当前指针处颜色 int x,y;窗口矩形的行和列 CBitmap bmp; CRng WndRgn,tmpRgn;转载 2012-02-07 22:04:29 · 232 阅读 · 0 评论 -
单文档中只是想得到当前View类的指针
对于MFC的单文档应用程序,在其他的类中我们经常要获取View类的指针,以此来访问View下的public成员。一般的方法:1 CMainFrame* pMainFrm = (CMainFrame*)AfxGetMainWnd();2 CMapGISView* pMapView = (CMapGISView*)pMainFrm->GetActiveView();复制代码转载 2012-02-07 17:59:10 · 832 阅读 · 0 评论 -
对话框上使用Cview
CView继承类,和其他窗口类的区别,很重要的就是对CDocument类和CFrameWnd类的操作,而其中,涉及CDocument类的操作,都进行了有效性判断(m_pDocument != NULL),CView类初始化的时候,m_pDocument = NULL,因此并不影响CView类作为控件的使用。涉及CFrame类的操作,有这么几个地方: 第一个地方:CView::OnDestro转载 2012-02-07 17:18:22 · 622 阅读 · 0 评论 -
使用CSplitterWnd实现拆分窗口(多视图显示)
MFC支持两种类型的拆分窗口:静态的和动态的。静态拆分窗口的行列数在拆分窗口被创建时就设置好了,用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。要找一个使用了静态拆分窗口的应用程序,只要看一下windows管理器即可。 动态拆分窗口最多可以有两行两列,但它们可以相互拆分和合并。Vc就使用了动态拆分窗口使得可以同时编辑源程序文件的两个以上不同的部分。转载 2012-02-06 10:48:44 · 351 阅读 · 0 评论 -
(转)MFC 菜单项 选中 工具条按钮 按下和弹起状态
MFC 菜单 选中作者[weylan] 发表于[2007-6-6 0:02:00]还没解决么?下面是我记录的一点心得,已全部测试通过: SDI或MDI工程中,在菜单项前打上或取消复选框标志。先给CMainFrame类添加一个BOOL类的成员变量m_stat,然后在菜单项的响应函数体中加入: m_stat=!m_stat; 并在菜单项的UPD转载 2012-02-06 16:03:05 · 1933 阅读 · 2 评论 -
Windows 中不规则窗体的编程实现
Windows 中不规则窗体的编程实现作者:上海伟功通信 roc下载源代码一、序言 在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用不规则窗体替代原先的矩形窗体转载 2012-02-09 11:14:42 · 190 阅读 · 0 评论 -
GDI+使用PNG格式图实现对话框背景及控件全透明技术实现思想(范例有treectrl 和 editboxctrl)之二
GDI+使用PNG格式图实现对话框背景及控件全透明技术实现思想 以下是我用这种方法实现Editbox 的例子: 实现文件/************************************************************ Author:LiuGuanfa Version:1.1 Date:2011.03.26 Descript转载 2012-02-09 14:16:55 · 1226 阅读 · 0 评论 -
使工具条图标透明背景(最简单的方法)
只需要把图片的背景颜色设置成(192,192,192)这种灰色即可。因为工具条的CImageList默认掩码颜色就是这种颜色,如果还去不掉,那么你可以通过提取res文件夹下面的工具条图片文件的背景色,填充到你图片的背景色上即可。原创 2012-02-23 16:38:28 · 620 阅读 · 0 评论 -
VC中怎么使用全局变量
VC中怎么使用全局变量关键词: VC 全局变量 全局变量一般这样定义:1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加转载 2012-02-22 16:47:00 · 221 阅读 · 0 评论