VC/MFC
文章平均质量分 84
缘梦逍遥
这个作者很懒,什么都没留下…
展开
-
VC用法 汇总
VC用法汇总 (一) (1)如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2)确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执转载 2010-05-16 19:13:00 · 1826 阅读 · 0 评论 -
CStatic贴图
MFC下消息处理机制与画图:1、Invalidate和UpdateWindow的区别。Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一转载 2012-04-17 14:42:11 · 944 阅读 · 0 评论 -
设置对话框背景(总结)
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。---- 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对话 框设置为蓝色背景和红色文本,步骤如下:---- ① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。---- ② 在CExampleDlgApp ::InitInstance(原创 2012-05-04 17:44:15 · 630 阅读 · 0 评论 -
Actskin 界面皮肤
ActiveSkin用于对话框程序今天小用了一下ActiveSkin,做的还是很不错的,主要是使用起来很方便。记录一下今天的使用过程,网上有一些,但是都说的不够详细,有的漏掉了重要的步骤1、当然是安装ActiveSkin,我用的是ActiveSkin 4.3。2、在你的对话框程序里面添加ActiveSkin 4.3控件3、修改StdAfx.h,在里面添加如下原创 2010-09-18 15:24:00 · 1387 阅读 · 0 评论 -
创建异形窗口(总结)
根据图片创建不规则窗口#define TRANS_COLOR (ALPHA_MASK | RGB(255, 0, 255))BOOL CMyDialog::OnInitDialog(){ CDialog::OnInitDialog(); CRgn rgn; CreateRgnByImage(_T("MyImage.png"), rgn);原创 2012-05-18 10:30:21 · 1942 阅读 · 0 评论 -
如何在MFC设计超链接控件类
关于如何在MFC设计自己的超链接控件类,KC之前写过这样的文章。额,其实那篇文章也就一代码……而且代码质量有点烂于是经过重修Rebuild之后,把设计的详细过程加以分析~1.摘要 控件的超链接效果在程序的UI设计中是经常会碰到的。但是在MFC的低版本中(VS2008所对应的MFC 9之前的版本),并没有现成的控件可以使用(WTL在早期似乎就提供了类似的控件)。转载 2012-05-18 16:52:07 · 2050 阅读 · 0 评论 -
用VC实现对超长数据库字段的操作
摘要 介绍了用VC实现对超长数据库字段操作方法的关键技术,并以Access2003环境下的数据库为例,在VC 6.0下进行了实现,给出了关键的程序代码。 关键字 二进制大对象; BLOB; 数据库; VC 前言 数据库在实际的开发过程中常常需要存储较大的二进制数据对象,如图像、音频文件、视频文件或其他二进制数据,这些数据称之为二进制大对象BLOB(Binary Lar转载 2012-07-05 10:25:41 · 655 阅读 · 0 评论 -
添加控件对话框不显示的问题 ——rich edit 问题
将公共控件或 Rich Edit 控件添加到对话框之后,在测试对话框时该控件不出现,或者对话框本身不出现。 问题示例 创建 Win32 项目,修改应用程序设置以创建 Windows 应用程序(不是控制台应用程序)。 在资源视图中,双击 .rc 文件。 在 Dialog 选项下,双击“关于”框。转载 2012-12-04 15:40:00 · 2889 阅读 · 1 评论 -
windows下网络编程(二)——MFC CAsyncSocket
CAsyncSocket 类是在很低的层次上对windows socket API进行了封装,它的成员函数和winsock API的函数调用直接对应,一个CAsyncSocket对象代表了一个windows套接字,它是网络通信的端点。该类将根据不同的windows套接字消息嗲用CAsyncSocket类的回调函数。如果熟悉网络通信细节,仍希望充分利用winsock API编程的灵活性,并能安全原创 2012-12-13 12:49:15 · 1780 阅读 · 0 评论 -
windows下网络编程(三)——MFC CAsyncSocket 分析
一些网络的基本概念1. 同步:指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式2. 异步:指的是发送方不等接收方响应,便接着发下个数据包的通信方式3. 阻塞:指调用某函数时,直到该函数完成操作,才返回;否则一直阻塞在该调用上4. 非阻塞:指调用某操作时,不管操作是否成功都立即返回,而不会挂在该操作上C原创 2012-12-13 14:24:24 · 2466 阅读 · 0 评论 -
windows下网络编程(四)——MFC CSocket
CSocket类是CAsyncSocket类的派生类,它继承了windows socket API封装函数。实现了比CAsyncSocket类对windows socket更高层的抽象。它与类CSocketFile和CArchive共同合作完成对发送数据和接受数据的管理,CSocket类提供了对于同步操作CArchive对象非常重要的阻塞功能,是程序员在管理数据的发送和接收的工作变得简单。CS原创 2012-12-14 14:54:42 · 5076 阅读 · 1 评论 -
GDI 画图问题集锦
在VC中使用CPen绘制宽度大于1的虚线转载 2014-09-25 11:18:12 · 928 阅读 · 0 评论 -
MFC下画图
MFC下画图CBitmap,HBitmap,Bitmap区别及联系加载一位图,可以使用LoadImage:HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad);LoadImage可以用来加载位图,图标和光标加载时可以规定加载图的映射到内存的大小:cxD原创 2016-06-22 17:26:24 · 1808 阅读 · 0 评论 -
MFC线程相关问题
MFC线程分为UI线程和工作线程 两者通信是个麻烦事,比如工作线程算出的一个结果要在UI上显示,直接在工作线程中使用UI的控件会出问题,一般有一下两种解决办法 发消息到界面线程里,让界面线程来更新,界面更新只能在主界面线程里面更新! 1.工作者SendMessage(PostMessage)让UI线程去更新界面 2.不要把CWnd指针传递到线程中,而是把CWnd所对应的HWND窗口句柄传递进原创 2016-06-23 11:22:56 · 591 阅读 · 0 评论 -
子线程如何获取和设置 或者控制窗口实时显示数据(网上的资料经个人整理拼凑总结)
最近在编写一个基于对话框的MFC程序,在程序中创建了一个子线程,想通过子线程获取和控制主窗口中的一个编辑框显示数据,经查资料现总结如下:1.可以在创建子线程的时候,将窗口的句柄作为参数传递给子线程2.可以通过自定义消息来给主线程来发送命令3.通过HEVENT 事件内核原创 2010-11-06 16:41:00 · 5429 阅读 · 1 评论 -
解决窗口刷新闪烁
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。转载 2012-04-17 15:18:14 · 858 阅读 · 0 评论 -
Debugger detected - please close it down and restart!问题
产生这个问题的原因主要是因为暴风影音在作怪具体解释在http://www.cnblogs.com/s5689412/archive/2008/08/11/890912.html中给出一种解法,但回帖中有一种简单方法,综合一下就是:(用vs2005)单步调试,找出有问题的语句,我的是:pEvent->WaitForCompletion(INFINITE, &EvCode);原创 2012-02-17 17:07:25 · 2718 阅读 · 0 评论 -
关于动态创建对话框以及动态创建控件
关于动态创建对话框的问题,网上也有不少相关的文章,但大多都是大同小异 主要的关键是: 请看下面的两种不同的动态创建对话框1. CDialog Dlg; Dlg.Create(IDD_DIALOG); Dig.ShowWindow(SW_SHOW);2. CDialog* Dlg=new CDialog; Dlg->Create(IDD_DIALOG); Dlg->ShowWindow(SW_ShowWindow);1动态创建的对话框是不能显示出来的,而2动态原创 2010-09-16 11:55:00 · 9272 阅读 · 2 评论 -
获取当前路径的问题
关于获取当前路径的问题在开发软件里,常常碰到要读取当前目录下的配置参数文件,或者打开当前目录下别的程序来运行,那么就需要获取当前进程的目录位置,主要有两个函数来实现1.函数GetCurrentDirectory获取当前进程所有在的目录。同时也可以使用SetCurrentDirectory函数来改变进程的当前目录。DWORD GetCurrentDirectory( DWORD nBufferLength, // size of directory buffer LPTSTR lpBuffer //原创 2010-09-16 14:19:00 · 3770 阅读 · 0 评论 -
如何自动截获输出到打印机的文本数据(转载)
<br />原 作 者:吴军丽 李继名<br />原 出 处:计算机世界<br /><br />在所有的应用软件当中,几乎都会提供打印结果的功能,但大部分的软件并不提供输出结果到文本文件功能(如速达,用友和金碟应用软件等能够打印,但不能将结果直接输出到文本文件;再比如一些与硬件配套的应用软件类似 <br />PeakNet等软件,也只能打印,不能输出到文本文件)。有时候客户需要对这些结果进行再次处理分析和统计。传统的方法,只能把打印到纸上的数据手工输入电脑,再利用自己的统计分析软件来处理这些数据。如果这些数转载 2010-10-09 15:17:00 · 8628 阅读 · 0 评论 -
给INI文件内容XOR加密 VC实现
这两天主要在搞一些文件加密,ini格式还有xml格式的文件加密本人用了一个最简单的异或加密,呵呵。在加解密这块是个新手。请多多包含。下面是异或加密的简单介绍加密算法中最广泛使用也是最有用的运算之一是 XOR。有必要理解 XOR 为什么如此有助于加密算法。XOR(在密码术中使用时)是一种位(bitwise)数字函数,其定义域是一个位对而值域是一个结果位。(在形式逻辑中使用时,它有细微差异,但还是同构的。)大多数读者可能已经很熟悉 XOR 的结果表,但还是让我们来看一下,以帮助回忆一下:原创 2010-10-29 15:56:00 · 4927 阅读 · 0 评论 -
在MFC下如何定义全局变量和全局函数
<br />用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。 <br /><br /> 一、在应用程序类中定义<br /><br /> 用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类。这个类主要进行程序的初始化,生成文档、视图对象等工作。我们可以把需要全局访问的变量和函数定义为这个类的成员变量和成员函数,就可以实现全局转载 2010-11-06 16:09:00 · 746 阅读 · 0 评论 -
API函数注册ocx控件
<br />设计思路:先将ActiveX控件载入内存,然后验证其有效性,最后直接在内存地址中执行其注册函数DllRegisterServer,UnDllRegisterServer<br />其编程方法:<br />1.使用Windows API函数LoadLibrary载入ActiveX控件<br />2.使用GetProcAddress函数获取ActiveX控件中注册函数DllRegisterServer(注销函数为UnDllRegisterServer)指针<br />3.使用CallWindowPr转载 2010-11-09 17:57:00 · 2577 阅读 · 0 评论 -
如何让工具条显示256色图像
<br />问题: 论坛中有很多人提出:基于Windows的程序如资源管理器(Explorer.exe),IE等都能显示出漂亮的工具栏图像和图标。但是,用MFC开发的应用程序一般都只能显示16色的工具栏图像和列表视图(如CListView)图像,而无法显示在资源中创建的256色图标和位图。这是为什么?解答: 工具栏和列表视图都是把自己的图像存储在图像列表中。这个图像列表实际上就是一个图像清单。它是一个由许多小图像组成的长条型位图图像。如图一所示: 图一假设你有7个20x20的图标,则在图像转载 2011-02-26 17:47:00 · 1344 阅读 · 0 评论 -
CFileDialog打开多个文件
<br /> 演示了如何多选文件,重设缓冲区,在国外站点找到的This article was contributed by Zandro Arceo.I wanted to open a number of files at the same time from a Visual C++/MFC application. However, a ClassWizard generated application (with file support) only allows for the opening转载 2011-03-08 17:02:00 · 2225 阅读 · 0 评论 -
自绘菜单
<br /><br />完美实现真彩自绘菜单<br /><br />作者:阿福(geforce_zf)<br />下载源代码<br /><br />一、提出问题 <br /><br /> 在VCKBASE上读到《自绘菜单的实现》[作者:querw]。应用的我自己的正在进行的工程后发现效果不错,可是有存在许多问题。整个类的设计方面存在很多缺陷(先天,后天的),存在的主要问题如下:当应用在多文档界面(MDI)中的时候,无法对系统自动添加菜单和文档模板菜单进行自绘(比如无法对文件->最近文件(MRU)菜单项中的转载 2011-03-10 11:55:00 · 3091 阅读 · 0 评论 -
VC++中利用MSXML解析XML文档
一、 XML 简介 XML(Xtensible Markup Language,即扩展标记语言)的发展起源于1996年。当时,出版界巨头和Web业内人士经过共同讨论,提出了创建SGML(Standard Generalized Markup Language,即标准通用标识转载 2011-10-16 23:08:18 · 1233 阅读 · 0 评论 -
MFC控件大小随窗体改变而改变
在一个基于MFC的Dialog上布置许多控件的时候,有时候在改变Dialog大小的时候控件不随着改变,现在告诉大家怎么让Dialog所有控件随Dialog改变而改变。 现在已最简单新建的对话框,在新建的Dialog里面的“确定”和“取消”按钮,在对话框最大化得时候,不会一起转载 2011-10-09 23:47:12 · 4162 阅读 · 1 评论 -
模态/非模态对话框的生&死 VC++中subclassdlgitem函数的功能及用法
以下为调试过程中的代码片段:----------------------------------------------------------->>>>// 模态CDialog::DoModal()->{::FindResourceCWnd::CreateDlgIndirect->::CreateDialogIndirect(看不到源码了,win32 API内部会创建窗口转载 2012-02-22 10:48:41 · 4245 阅读 · 0 评论 -
深入理解MFC子类化
子类化,通俗来讲就是用自己的窗口处理函数来处理特定消息,并将自己其他消息还给标准(默认)窗口处理函数。在SDK中,通过SetWindowLong来指定一个自定义窗口处理函数:SetWindowLong(hwnd, GWL_WNDPROC, (LONG)UserWndProc);。可是到了MFC中,大部分基础的东西都被封装起来了,那么,这是该怎么实现子类化呢? 先来看一个例子:转载 2012-02-22 14:07:41 · 1145 阅读 · 0 评论 -
Compiling erro C2061 ( identifier 'STAT_CHUNK')问题
Compiling erro C2061 ( identifier ‘STAT_CHUNK’)错误: [cpp] view plain copy print? error C2061: syntax error : identifier ‘STAT_CHUNK’ ………….. 解决:应该是版本的问题,检查你的项目目录下的原创 2016-09-23 17:10:54 · 1588 阅读 · 0 评论