随笔分类 - mfc
摘要:模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统属性窗口进行操作就操作不了,这种叫做模式对话框;关闭技术支持信息,在系统属性里选择硬件,点击设备管理器,弹出设备管理器窗口,现在再对系统属性窗口进行操作仍然可以操作,这种就叫做非模式对话框。 在...
阅读全文
摘要:一、双缓冲实现过程如下: 1、在内存中创建与画布一致的缓冲区 BufferBmp=new Graphics::TBitmap(); BufferBmp->Canvas->Handle=CreateCompatibleDC(Canvas->Handle); BufferBmp->Width=Width; BufferBmp->...
阅读全文
摘要:Visual C++的CBitmap类的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。如果想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码,未免过于繁琐. 现在,.net引入了一个功能非常强大的新类 ----- CImage.有了CImage类,Vis...
阅读全文
摘要:配置文件中经常用到ini文件,在VC中其函数分别为: 写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName); 读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAp...
阅读全文
摘要:最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底是char还是w_char; TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII...
阅读全文
摘要:列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示LVS_EDITLA
阅读全文
摘要:所谓的静态有两种,一种是在picture属性中直接加载(type选择bitmap,image选择已加载到资源中的位图),另一种是通过编程加载,这两种的前提都要我们先把位图导入到资源中去,下面说下后一种。 001:新建对话框工程,加入picture控件,关联变量为m_Bmp(类型为control),ID也要改一下,因为采用默认的,有重名,在关联变量的时候找不到picture项,再拖一个按钮上去,我...
阅读全文
摘要:转自:http://www.cppblog.com/finehai/archive/2009/08/27/94578.html 在MFC编程中经常会需要用到选择目录和选择文件的界面,以下总结一下本人常用的这两种对话框的生成方法: 选择目录对话框 //选择目录按钮 void CDcPackerDlg::OnBnClickedDecgen() { char s...
阅读全文
摘要:双缓冲方法解决屏幕刷新闪烁的问题 http://dev.21tx.com/2005/05/06/11850.html 下载本文所附源代码 关键字 双缓冲 原作者姓名 戚高 介绍 在论坛中经常见到关于刷新时界面闪烁的帖子,如何控制在进行高效绘图时不出现界面闪烁的感觉呢,下文就双缓冲方法进行讲解. 正文 图形为什么会闪烁的原因是:我们的绘图过程大多放在OnDraw或者OnP...
阅读全文
摘要:一个好的软件,界面非常重要,其中的功能要让客户一目了然。而这些可以借助于工具栏,如在Microsoft Word中的工具栏,相关的操作基本上都可以借助工具栏来完成。下面,我就将我知道的关于VC中关于工具栏的一些东西写写,与大家共享,不对的地方请大家帮忙纠正。 下面我以Visual Studio.net 2003下的单文档/视图的程序为例说明。 在VS中,实现工具栏的类是CToolBar, 在新建一...
阅读全文
摘要:对话框中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息 在对话框程序中添加工具栏其实很简单,网上能找到很多的例子。 一般的步骤就是: 1、在资源中添加工具栏资源; 2、在对话框类中定义一个工具栏变量; 3、在对话框的OnInitDialog函数中Create工具栏。 程序如下: 在对话框类中定义工具栏成员变量: CToolBar m_ToolBar; 在OnInitD...
阅读全文
摘要:第1个回答 CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_O...
阅读全文
摘要:http://hi.baidu.com/xiaorida21/blog/item/8d8eb77a22eedee52e73b39e.html CWnd类 我们在屏幕上看到的所有对象都和窗口有关,它们或者派生于CWnd,属继承关系,如对话框、工具栏、状态栏、子控件;或者被CWnd合成,属服务员与服务对象关系,如图标、菜单、显示设备。 CWnd类封装的窗口操作主要包含窗口的创建和销毁、操作窗口风格、操...
阅读全文
摘要:MFC应用程序中处理消息的顺序 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用D...
阅读全文
摘要:OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创...
阅读全文
摘要:一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。 先来谈谈闪烁产生的原因 原因一: 如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕 上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。 一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。 这样问题就来了,一般画图...
阅读全文
摘要:如何修改frame窗口的背景颜色? MDI窗口的客户区是由frame窗口拥有的另一个窗口覆盖的。为了改变frame窗口背景的颜色,只需要这个客户区的背景颜色就可以了。你必须自己处理WM_ERASEBKND消息。下面是工作步骤: 创建一个从CWnd类继承的类,就叫它CMDIClient吧; 在CMDIFrameWnd中加入CMDIClient变量;(具体情况看下面的代码) #include "MDI...
阅读全文
摘要:Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_bstr_t、CStringT等,最后讨论它们的转换方法, 其中还包括使用最新ATL7.0的转换类和宏,如CA2CT、...
阅读全文
摘要:http://blogold.chinaunix.net/u/9205/showart_1989124.html 句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:<<Microsoft Windows 3 Developer's Workshop>>(Microsoft Press,by Richard Wilton)一书中句...
阅读全文
摘要:转载自 herocxw20051. 定义: sizeof是C/C++中的一个操作符(operator),作用就是返回一个对象或者类型所占的内存字节数。返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一 般定义为typedef unsigned int size_t;编译器林林总总,但作为一个规范,都会保证char、signedchar和unsigned char的sizeof值为1,毕竟char是编程能用的最小数据类型。 MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes,
阅读全文