MFC编程
cosmoslife
多媒体编程、网络编程、系统编程、网络安全编程
展开
-
vc++经典技巧总结 .
1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码:m_tabsheet.Create(this, WS_CHILD | WS_VISI转载 2012-03-11 01:22:03 · 1742 阅读 · 0 评论 -
深度解析VC中的消息传递机制
Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的。所以,要学好Windows编程,必须 对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析。 一、什么是消息?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,转载 2012-08-15 19:04:14 · 695 阅读 · 0 评论 -
引用 LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别
1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节。2、Unicode:用两个字节表示一个字符的编码方式。比如字符'A'在ASCII下面用一个字节表示,而在Unicode下面用两个字节表示,其中高字节用“0”填充;函数'程'在ASCII下面用两个字节表示,而在Unicode下面也是用两个字节表示转载 2012-08-15 19:07:41 · 510 阅读 · 0 评论 -
VC++编写ActiveX控件 (学习)
前言:ocx是ocx控件的扩展名,OCX 是对象类别扩充组件。如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如EditBox,Grid,ImageBox,Timer等等。每个控件都有自己的事件、方法和属性。使用了控件的编程非常容易。首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(caption)等等;在转载 2012-11-08 17:59:43 · 1120 阅读 · 0 评论 -
OnDraw与OnPaint有什么区别?
OnDraw与OnPaint有什么区别?(转)OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows转载 2013-03-23 11:02:29 · 502 阅读 · 0 评论 -
如何实现文件拖动到窗口中
如果是dialog,窗口要加上accept files属性 //拖放文件响应 void CXXXXX::OnDropFiles(HDROP hDrop) { CString strPath; UINT nChars=::DragQueryFile(hDrop,0,NULL,0); TCHAR* lpszFileName=new TCHAR[nChars+1]; nCha转载 2013-03-24 22:36:59 · 751 阅读 · 0 评论 -
VC中窗口ID,句柄,指针三者相互转换函数
ID--HANDLE--HWND三者之间的互相转换id->句柄 hWnd = ::GetDlgItem(hParentWnd,id);id->指针 CWnd::GetDlgItem();句柄->id id = GetWindowLong(hWnd,GWL_ID);句柄->指针 CWnd *pWnd=CWnd::FromHandle(h转载 2013-04-10 13:38:44 · 704 阅读 · 0 评论 -
VS对话框资源中编辑控制的TAB键序
TAB键序在用户输入多个数据的时候是很方便的功能,但是若是顺序不合理反而会成为累赘。 VC中的TAB键序很容易设置,我在控件属性里找了半天,只找到了TABSTOP属性。发现对话框编辑器提供了一个功能:按Ctrl+D就会进入TAB键序编辑状态,所有的控件左上角都有一个蓝底白字的数字,只要按顺序依次点击,序号就会在点击的控件上依次递增,也就是说,点击的顺序就是控件TAB键序的顺序。原创 2013-05-12 20:18:37 · 953 阅读 · 0 评论 -
如何在对话框中实现文件拖放功能
在对话框上添加一个Picture Control,然后把Accept Files属性修改成True。如果是想托图片的话需要把Type改成Bitmap。在头文件里加入:afx_msg void OnDropFiles(HDROP hDropInfo);在cpp文件里加入:ON_WM_DROPFILES()在OnInitDialog()的最后加入:DragAcceptFiles(TRUE);在转载 2016-10-25 13:05:34 · 526 阅读 · 0 评论 -
DSkinLite皮肤库学习笔记
用MFC开发程序的人都知道界面美化是最头疼的问题,最近看了一个个人感觉还不错的皮肤库的使用,学习了一下,顺便把自己的学习作个笔记。http://www.uieasy.cn/详细了解大家可以登录官方网站了解 工程设置DSkinLite引用方法:(1)将include与lib文件夹复制到相应的工程目录下(2)在stdafx.h头文件中添加如下三行代码//皮肤头文件#incl原创 2012-07-16 18:09:55 · 1127 阅读 · 0 评论 -
创建线程函数区别CreateThraed/_beginthreadex/AfxBeginThread(重点理解)
(1)CreateThread函数CreateThread:是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要使用。因为:C Runtime中需要对多线程进行纪录和初始化,以保证C函数库工作正常。MFC也需要知道新线原创 2012-06-23 15:56:58 · 1200 阅读 · 0 评论 -
深入了解WM_DEVICECHANGE消息
深入了解WM_DEVICECHANGE消息2008-09-29 18:22 当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE 消息,当消息的wParam 值等于 DBT_DEVICEARRIVAL 时,表示Media设备被插入并且已经可用;如果wParam值等于DBT_DEVICEREMOVECOMPLETE,表示转载 2012-06-21 00:25:30 · 5341 阅读 · 0 评论 -
MFC美化界面
转自:http://vcer.net/1046595482643.html本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。转载 2012-05-11 18:00:15 · 1123 阅读 · 0 评论 -
VC中的debug和release(精华)
在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当头一棒啊,可是疼归疼,问题总要解决,下面将讲述一下我的几点经验,看看是不是其中之一:1. 变量。大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋转载 2012-05-17 14:27:09 · 646 阅读 · 0 评论 -
内存错误(精华)
写了个程序,在DLL中用malloc分配了一块内存,但是在exe程序中释放,结果程序crash,原因就是:其原因可能是堆被损坏,这也说明 TestMySticker.exe 中或它所加载的任何 DLL 中有 bug。想了半天以为是自己的写法有问题,后终于在google上找到了原因,汗。。。 以下文字引用自 http://hi.baidu.com/huhe/blog/item/0b4转载 2012-05-17 14:44:07 · 973 阅读 · 0 评论 -
在 Win32 Application 和 Win32 Console Application 中使用 MFC
在 Win32 Application 和 Win32 Console Application 中使用 MFC 在Virtual C++ 6.0创建的Win32 Application 和 Win32 Console Application 中使用 MFC 是可能的,主要的困难在于绕过MFC提供的WinMain函数。下面我提供一个方法以供参考: 进入 Project-->Setting转载 2012-06-07 17:42:13 · 515 阅读 · 0 评论 -
MFC如何封装WINDOWS应用程序的流程
MFC如何封装WINDOWS应用程序的流程作者:陆麟 转载请征得作者同意. 2000.11.27 MFC封装了WIN API.大家都知道.但是MFC应用程序的真正流程又有多少人知道呢? 下面就是我对MFC启动代码的一些剖析. 在TCHAR.H里,有这么2小段define.通过我的简化,我们可以看到: //TCHAR.H #ifdef _UNICODE #转载 2012-06-10 07:52:59 · 761 阅读 · 0 评论 -
MFc消息映射机制理解
何谓消息、消息处理函数、消息映射?消息简单的说就是指通过输入设备向程序发出指令要执行某个操作。具体的某个操作是你的一系列代码。称为消息处理函数。在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络。一个switch case语句就可以搞定,消息循环直到遇到WM_QUIT消息才会结束,其余的消息均被拦截后调用相应的处理转载 2012-06-11 17:48:37 · 580 阅读 · 0 评论 -
MFC的消息映射有什么作用
绝对以下这三个解释的比较简洁,特此做个记录!以感谢回答的这些人!MFC的消息映射有什么作用: Windows操作系统主要是有消息来处理的,每个程序都有自己的消息队列,并且这些消息是有优先级的,也就是谁会先执行的。你定义个消息,先发给操作系统,操作系统再传到你的执行函数 比如下面的消息映射:BEGIN_MESSAGE_MAP(CMyDlg, CDialog) ON_CBN_SELCHA转载 2012-06-12 22:07:34 · 643 阅读 · 0 评论 -
WinAPI透明窗体SetLayeredWindowAttributes
SetLayeredWindowAttributes BOOL SetLayeredWindowAttributes( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags ); hwnd是透明窗体的句柄, crKey为颜色值, bAlpha是透转载 2012-06-18 06:11:07 · 1419 阅读 · 0 评论 -
MFC控件属性修改笔记
EDIT控件多行显示:Multiline=TrueAuto HScroll=False原创 2016-10-25 15:08:30 · 2161 阅读 · 0 评论