MFC/VC++
王晓斌
十年苦烦剧,一念愈倾仰
展开
-
为窗口添加鼠标HOVER和LEAVE事件
因为鼠标的进入和离开不是一个标准的window事件,所以要手动添加代码,先建一个OnMouseMove事件,再手动添加OnMouseLeave和OnMouseHover事件,分别在OnMouseMove事件的下面。 /*************************************************************************/ afx_msg v转载 2009-08-13 17:51:00 · 1228 阅读 · 0 评论 -
捕捉屏幕“热点”
先来看看什么是屏幕"热点",当我们在Windows 提供的帮助文件或上网浏 览网页时,就指当鼠标移动到屏幕的某一块区域(例如一幅图像或一个按钮)内 时,鼠标指针变成了一只"手",有时还会出现一些提示性的文字。这图像或按 钮所在的区域就是"热点"。 如果在窗口中设置鼠标光标,则Windows会向当前窗口发送W转载 2010-03-05 15:15:00 · 749 阅读 · 0 评论 -
MFC如何高效地绘图
<br />MFC如何高效地绘图 <br /><br /> [ 作者: TouchMe 添加时间: 2001-12-25 8:21:34 ] <br /><br /> <br /><br /> 显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。 <br /> 而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 <br /> MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单, <br转载 2010-07-02 15:38:00 · 736 阅读 · 0 评论 -
*.fon文件与*.ttf文件的区别
<br />光栅字体(.FON) <br /><br />这种字体是针对特定的显示分辨率以不同大小存储的位图,用于Windows系统中屏幕上的菜单、按钮等处文字的显示。它并不是以矢量描述的,<br />放大以后会出现锯齿,只适合屏幕描述。不过它的显示速度非常快,所以作为系统字体而在Windows中使用。 <br /><br />矢量字体(.FON) <br /><br />虽然扩展名和光栅字体一样,但是这种字体却是由基于矢量的数学模型定义的,是Windows系统字体的一类,一些windows转载 2010-07-22 17:15:00 · 4383 阅读 · 0 评论 -
cannot open file 'mfc80d.lib'
<br />将工程属性中 Configuration Properties/C,C++/Output Files/Program Database File Name 改为$(IntDir)/vc90.pdb 即可。原创 2010-05-31 11:24:00 · 3091 阅读 · 0 评论 -
fatal error LNK1181: cannot open input file ",.obj"
<br />工程属性中某个路径设置不对,如生成lib文件的路径 写成了 &(SolutionDir)/Lib" 正确的为 “&(SolutionDir)/Lib”原创 2010-05-31 11:48:00 · 5914 阅读 · 0 评论 -
解决 error c1083 can not find the *.pch file
<br /> MFC工程中, 设置stdafx.h的预编译属性为 Create Precompiled Header (/Yu);设置其他文件的属性为 Use Precompiled Header (/Yu)。可先单独编译stdafx.h文件,生成*.pch文件,在编译即可(或直接rebuild)原创 2010-08-15 16:46:00 · 1068 阅读 · 0 评论 -
MFC中注册WNDCLASS样式并建立窗口(使用WNDCLASS创建无父窗口的窗口)
<br />转自:http://blog.csdn.net/moon19870104/archive/2010/04/10/5471207.aspx<br /> <br />如果程序主窗口不是由CframeWnd派生而来,而是由CWnd派生而来,那么在创建窗口的时候,必须注册自己的WNDCLASS,因为CWnd::CreateEX不接受NULL WNDCLASS名称。<br />这种情况下,注册WNDCLASS样式半建立窗口有两种方式。<br />方式一,定义一个WNDCLASS结构实例,并对每个字段进转载 2010-09-21 11:29:00 · 1138 阅读 · 0 评论 -
VC++之List Box/Check List Box控件
<br />转自: http://www.hackbase.com/lib/2007-04-24/13149.html<br /> <br />ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数: <br /><br />BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); <br /><转载 2010-09-25 16:03:00 · 578 阅读 · 0 评论 -
自动提示(AutoComplete)功能的combo box
<br />示例下载:<br /> <br />http://www.codeproject.com/KB/combobox/akautocomplete.aspx <br /> http://www.visualwebgui.com/Community/Resources/Codes/tabid/326/articleType/ArticleView/articleId/91/ComboBox-AutoComplete-Sample.aspx <br /> http://www.codeg原创 2010-09-27 11:46:00 · 2133 阅读 · 0 评论 -
Using the CCheckListBox and getting check state notification
<br />转自:http://www.codeproject.com/kb/combobox/CCheckListBoxUsage.aspx<br /> Introduction<br />I like the CCheckListBox class provided with MFC, however, it�s use isn�t obvious and the wizard assistance stops at the CListBox class. I�ll describe转载 2010-09-26 11:39:00 · 829 阅读 · 0 评论 -
虚拟列表控件 CListCtrl
参考:http://fengqing888.blog.163.com/blog/static/3301141620108341333480/ http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/使用虚拟列表, 添加数据行时不再需要调用控件的inset等函数,更新完内存中的数据后, 调用控件的invalidate() ,设置控件的行数大小,控件通过LVN_GETDISPINFO消息实现控件可见内容的填原创 2010-12-28 17:24:00 · 3629 阅读 · 1 评论 -
CListCtrl使用详解
<br /><br />以下未经说明,listctrl默认view 风格为report<br /><br />1. CListCtrl 风格<br /><br /> LVS_ICON: 为每个item显示大图标<br /> LVS_SMALLICON: 为每个item显示小图标<br /> LVS_LIST: 显示一列带有小图标的item<br /> LVS_REPORT: 显示item详细资料<br /> 直观的理解:windows资源管理器,“查看”标签转载 2010-12-28 17:27:00 · 1537 阅读 · 0 评论 -
修改鼠标光标的形状
<br />转自: http://blog.csdn.net/duxiuxing/archive/2007/05/07/1599771.aspx<br /> <br /> <br /><br /> 我还是比较习惯通过案例说明问题,需求案例描述如下:实现一个从 CDialog 派生的窗口类,要求当鼠标移动到窗口客户区的时候,修改鼠标指针的形状,使其显示一个小手的形状。<br /> 为了后面阐述方便,我们假设该派生窗口类名称为 CMyDialog,鼠标光标对应资源为 IDC_CURSOR_HAND。<br转载 2010-12-29 15:24:00 · 4914 阅读 · 0 评论 -
WPARAM与LPARAM的区别
在Win3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别。因为地址通常是32位的,所以LPARAM被用来传递地址,这个习惯在Win32 API中仍然能够看到。在Win32 API中,WPARAM和LPARAM都是32位,所以没有什么本质的区别。Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习原创 2010-03-01 13:30:00 · 550 阅读 · 0 评论 -
CButton & CMFCRibbonButton
CButton : public CWnd CMFCRibbonButton继承自CObject,不能添加消息映射。原创 2010-03-02 14:05:00 · 1122 阅读 · 0 评论 -
VC小技巧20个
转自:http://blog.csdn.net/gisfarmer/archive/2009/08/14/4445201.aspx 一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait转载 2009-08-14 11:17:00 · 448 阅读 · 0 评论 -
深入了解CCtrlView
转自:http://blog.csdn.net/oldmanzhao/archive/2007/12/18/1946938.aspx 如果我们要将一个控件转换成视图类,我们一般会想到CCtrlView,用它实现的控件视图一般添加一个GetXXXCtrl函数,函数的作用是返回视图中控件的引用,如果在MFC程序中跟踪它的调用我们会发现它的实现是这样的(以CEdit控件为例)_AFXEX转载 2009-08-21 15:39:00 · 713 阅读 · 0 评论 -
MFC Feature Pack for Visual C++ 2008的BUG之一
CMFCTabCtrl::EnableActiveTabCloseButton用于在CMFCTabCtrl的Tab页显示一个关闭按钮,看看关闭按钮怎么实现: void CMFCBaseTabCtrl::OnLButtonDown(UINT nFlags, CPoint point){ m_bWindowPosChanged = FALSE转载 2009-08-27 09:24:00 · 995 阅读 · 0 评论 -
为对话框添加菜单与工具栏
为对话框添加菜单与工具栏菜单: 1.添加菜单资源(IDR_MENU1),加上需要的菜单项。可以为菜单项进行相应的操作,比如:响应Command命令 2.编辑对话框资源IDD_TESTDLL_DIALOG的属性,在属性对话框中选择IDR_MENU1.如果用代码实现,可以: 1.添加成员变量: CMenu m_menu; 2.在OnIni转载 2009-08-27 09:25:00 · 728 阅读 · 0 评论 -
BitBlt函数用法
BitBlt函数用法网友回复:MSDN网友回复:具体点,现在先给一个参数说明 BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop ); 返回值:函数成功,返回非零值,否则为0。 参数: x 指定目标矩形左上角的逻辑x坐标。 y转载 2009-08-27 09:26:00 · 4254 阅读 · 0 评论 -
Bitblt函数(API)祥解
Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为"源",后一内存块被称为"目标"图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上原形说明:DeclareFunction BitBlt Lib "gdi32" Alias "BitBlt"(ByVal hDestDC As Long, ByValx As Lo转载 2009-08-27 09:28:00 · 711 阅读 · 0 评论 -
GDI双缓冲绘图
(1)在窗口类里面声明成员变量class CReportView : public CWnd{ CBitmap m_btMem; // 背景位图,在内存里面的位图 CBitmap m_btClient; // 前景位图,与客户区域相同大小的位图 int m_nbtMemWidth; // 背景位图宽度 int m_nb转载 2009-08-27 09:23:00 · 786 阅读 · 0 评论 -
MFC程序下的WEB引用的添加使用
转自:http://myvc.blog.ccidnet.com/blog-htm-do-showone-uid-264170-type-blog-itemid-1337261.html 在MFC模式下,"添加Web引用"默认是灰色的.这是因为编译器环境的问题. 要使用Web引用,就要用到托管类型,所以需要修改下环境设置.将需要的/clr开关打开即可. "使用托管扩展"->"是" 在VS20转载 2009-10-20 12:34:00 · 965 阅读 · 0 评论 -
将HBITMAP保存为文件
转载 2009-10-20 18:08:00 · 2032 阅读 · 1 评论 -
设备相关位图(DDB)与设备无关位图(DIB) 的区别
转自:http://www.cnblogs.com/Jade2009/archive/2009/05/11/1454263.html 设备相关位图 DDB(Device-Dependent-Bitmap) DDB不具有自己的调色板信息,他的颜色模式必须与输出设备相一致。如:在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。由于DDB高度转载 2009-11-30 16:35:00 · 901 阅读 · 1 评论 -
响应MFC Feature Pack中 CMFCRibbonCategory 切换消息
在MFC Feature Pack中,可以为CMFCRibbonBar添加多个CMFCRibbonCategory 作为button panel的容器。在切换这些category时,MFC没有提供对应的消息类型,可以派生一个新的CMFCRibbonBar子类,当设置当前category时,向Main Frame发送消息,将category的caption字符串作为消息参数。在Main Frame中原创 2010-02-26 11:05:00 · 2206 阅读 · 1 评论 -
CDocument::GetNextView
Call this function to iterate through all of the documents views.virtual CView* GetNextView( POSITION& rPosition ) const; Parameters rPositionA refere原创 2010-02-25 09:35:00 · 1287 阅读 · 0 评论 -
Ultimate Grid
www.TheUltimateToolbox.com原创 2010-02-25 14:53:00 · 1661 阅读 · 0 评论 -
为属性页中的对话框添加工具栏,及添加工具栏tool tip & Update command ui
1. 为对话框添加工具栏。 为 CPropertyPage 或者CDialog 的 派生类添加一个成员 CToolBar m_ToolBar. CImageList m_imageList;CBitmap m_toolBarBitmap; OnInitDialog()中加入: m_ToolBar.CreateEx(this, TBSTYLE_FLAT,原创 2011-06-20 11:55:00 · 1069 阅读 · 0 评论