
MFC
高达一号
这个作者很懒,什么都没留下…
展开
-
MFC_解决按下回车键退出程序的问题
基于对话框的MFC,解决回车键程序退出问题 对话框如何屏蔽回车键enter 当用户按下回车键时,Windows发送一个特殊的WM_GETDEFID消息来获得缺省的命令ID,Windows再将它作为WM_COMMAND发送。所以,你要做的就是重载WM_GETDEFID消息,在有关Windows的文档中是这样描述WM_GETDEFID返回值的:“如果有缺省得按钮,则返转载 2015-08-24 16:46:30 · 13466 阅读 · 4 评论 -
C++_TCHAR字符串在UNICODE环境的控制台下输出
TCHAR字符串在UNICODE环境下是不能直接用cout 输出的, 原因是 cout 为 ostream流对象实例,直接用cout 输出TCHAR字符串会输出字符串的地址 //TODO:测试代码 //得到了非空一个字符串,则查找成功。 //...... //.....将该字符串转换为TCHAR..... //...... USES_CONVERSI原创 2015-08-28 14:43:29 · 10156 阅读 · 1 评论 -
用代码关闭程序的正确做法!---向窗口发送WM_CLOSE消息
总结:我们要使用代码关闭程序的话,应该向窗口发送WM_CLOSE或者直接调DestroyWindow(HWND)函数 (默认情况下WM_CLOSE的消息响应就是调用DestroyWindow(HWND) 函数,所以我们直接调用也达到一样的效果).这样可以令操作系统回收窗口占用着的内存资源后再退出程序.千万不要直接用PostMessage(WM_QUIT);令程序退出,这样程序是可以退出转载 2015-08-05 21:10:45 · 11122 阅读 · 0 评论 -
MFC中通过子窗口关闭父窗口以实现退出程序
这应该是个老问题,我来稍微总结下:(我刚刚接触Windows编程希望大家多多指点)1.上来来个最鲁莽的.直接通过exit(0),ExitProcess(0);//不好的用法猜测资源得不到回收原因如下:http://blog.youkuaiyun.com/jiang1013nan/article/details/48310202.向父窗口发送WM_CLOSE消息,原创 2015-08-05 21:08:15 · 8722 阅读 · 0 评论 -
MFC_对话框中用来初始化一些数据的函数。
OnInitDialogWM_INITDIALOG现在OnInitDialog是个虚函数重载就行,vc6是消息映射BOOL OnInitDialog();原创 2015-08-07 11:41:49 · 2063 阅读 · 0 评论 -
C/C++,Windows/MFC, char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集
字符类型、字符指针类型、字符串字面值字符类型: char, wchar_t, CHAR, WCHAR, TCHAR, UCHAR, BYTE, TBYTE char 是C语言标准数据类型,字符型。通常由编译器决定一个char对象有多少个字节组成,一般是一字节。 wchar_t 是char的Unicode版本。相当于 unsi转载 2015-08-07 20:48:35 · 2886 阅读 · 0 评论 -
Windows/MFC_dll生成文件___浅谈def文件(用于生成dll)
def文件格式(DLL导出) 2009-12-03 21:37:41| 分类: C++ |举报 |字号 订阅今天接触了def文件,在客户端工程里有不少def文件,有关dll导出的今天就花时间看了看,以前包括现在自己在使用dll的时候很少用到dll一个强大功能,就是跨语言,用vb做界面调用vc写的dll各取所长。以前没碰到过def这个文件,就上网看了看,看完后明白了大概的作用转载 2015-09-10 21:12:59 · 1797 阅读 · 0 评论 -
Windows/MFC_def文件格式_规范写法(用于生成dll)
def文件格式 2011年03月18日 模块定义 (.def) 文件 模块定义 (.def) 文件为链接器提供有关被链接程序的导出、属性及其他方面的 信息。生成 DLL 时,.def 文件最有用。由于存在可代替模块定义语句使用的链接器选项,通常不需要 .def 文件。也可以将__declspec(dllexport) 用作指定导转载 2015-09-10 21:01:13 · 4961 阅读 · 0 评论 -
MFC/Windows_WM_CTLCOLOR消息
WM_CTLCOLOR消息用来完成对EDIT, STATIC, BUTTON等控件设置背景和字体颜色, 其用法如下:1.首先在自己需要设置界面的对话框上点击右键-->建立类向导-->加入WM_CTLCOLOR消息-->自动生成OnCtlColor()函数, 此函数可以对本对话框的控件的界面外观做修饰, 用法如下:将类向导产生的函数做如下修改:HBRUSH CDialogColo转载 2015-08-20 09:19:24 · 1440 阅读 · 0 评论 -
MFC_ HWND(获取控件或窗体句柄) [大三TJB_708]
平台:visual studio 2010 1 C++窗体对象和HWND窗体对象是一个继承于CWnd类的C++类的 对象。咱们可以用构造函数生成一个windows窗体,此windows窗体被一个 "window handle" (HWND)唯一标识,当一个窗体被创建后,此窗口的窗口句柄也响应的被创建。此窗口的窗口句柄被保存在窗体对象的数据成员m_hWnd中。 2. 获取转载 2015-08-20 09:43:34 · 5737 阅读 · 0 评论 -
Windows/MFC_中__declspec 的用法
c++ 中__declspec 的用法语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#) 用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int转载 2015-09-11 18:08:10 · 726 阅读 · 0 评论 -
Windows/MFC_中dll __stdcall,__cdcel,extern c 和导出函数名
无论c或c++都会对导出函数改名或不改名,无论你是静态还是动态调用一个导出函数,都可能碰上改名后导致的调用失败(甚至可能是调用约定不同而导致清理堆栈出错,造成崩溃),下面分析一下改名和调用约定之间的关系。 一.先说extern c。 其含义是指,按c的方式编译代码。在vs7及以后的vs中,有编译选项可以直接选择“编译为:c代码”(在工程属性----》c/c+转载 2015-09-14 11:44:47 · 3088 阅读 · 0 评论 -
Windows/MFC中_显式加载DLL并使用 DLL 中的类(原创)
显式加载DLL并使用 DLL 中的类(原创)首先需要强调,当使用某个类时一般目的有二:实例化成对象或者继承它产生新类。对于前者,我们可以构造一个抽象类(java里的接口)来连接调用方和DLL。 抽象类:// Interface.h 公共文件/////////////////////////////////////////////////#pragma onc转载 2015-09-14 11:50:42 · 2130 阅读 · 0 评论 -
C/C++_宏定义多次重复定义
$MS编译器下宏多次重复定义以最后的作为标准#include using namespace std;#define MAX 5#define MAX 4#define MAX 3int main(){ printf("%d\n", MAX); return 0;}原创 2015-09-10 18:18:32 · 17695 阅读 · 0 评论 -
windows/MFC_DYNAMIC_DOWNCAST判断指针所指向的内容是否为某class类型
DYNAMIC_DOWNCAST(class, pointer ):如果pointer指针所指向的对象是class类型的,就返回这个指针。否则返回NULL例如 你获取到一个指针 XXX *pointer; 你想判断它是不是指向某个类 ,例如 A 这个类A* p= DYNAMIC_DOWNCAST(A, pointer );如果pointer是指向A这个类则返回此指针,否则返转载 2015-09-14 17:47:10 · 1153 阅读 · 0 评论 -
C++,Windows/MFC_中L和_T()之区别
字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:转载 2015-08-13 09:54:38 · 6141 阅读 · 0 评论 -
Windows/C++/MFC_ATL转换宏用于WCHAR,TCHAR,char转换以及其含义
相关类型转换:(强制转换会出现乱码)wchar_t ‐> char : wcstombs();或 WideCharToMultiByte(); //windowschar ‐> wchar_t : mbstowcs();或 MultiByteToWideChar(); //windows另外可使用ATL 提供的转换宏, 包含LPWSTR‐>LPTSTR: W2T转载 2015-08-13 11:32:18 · 1574 阅读 · 0 评论 -
Windows/MFC_CWnd与Hwnd转换
1:CWnd是MFC的窗口基类。 HWND是Windows窗口句柄。 前者是一个C++对象,后者是一个类似于指针地址的数字型对象。2:CWnd可以看成是对Windows窗口操作的封装,而封装的核心就是使用Windows窗口句柄(即HWND)来操作窗口. 3:CWnd可以通过CWnd::GetSafeHwnd()或成员变量m_hWnd来获得该窗口对象的HWND窗口句转载 2015-08-05 21:13:19 · 1009 阅读 · 0 评论 -
Windows/MFC_ 如何判断CString类型是否为空
CString strTemp; if (strTemp.IsEmpty()) { AfxMessageBox(_T("空")); } if (strTemp.GetLength()==0) { AfxMessageBox(_T("空")); }突然感觉CString类真的挺好用,里面的很多函数用起来都很方便,什么Mid、Left、Right、Find。转载 2015-08-07 11:37:46 · 6162 阅读 · 0 评论 -
Windows/MFC_三个退出程序消息:WM_CLOSE、WM_DESTROY、WM_QUIT
1、发送消息SendMessage、PostMessagePostMessage将消息放入消息队列后马上返回,而SendMessage直到窗口过程处理完消息后才返回2、三个消息的区别WM_CLOSE:在系统菜单里选择了“关闭”或者点击了窗口右上角的“X”按钮,你的窗口过程就会收到WM_CLOSE。DefWindowProc对 WM_CLOSE的处理是调用Destro转载 2015-08-05 21:12:07 · 9554 阅读 · 0 评论 -
杂谈_如何让VS2013开发的MFC程序运行在XP系统下
微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在Vista/Win7/Win8上运行。但幸好还保留了生成XP程序的设置项。XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们。 1. 项目菜单->项目属性->配置属性->常规->平台工具集,选择“VS2013WindowsXP(v120_xp)”; 2. 项目菜单-转载 2015-08-04 15:26:25 · 4770 阅读 · 0 评论 -
MFC_为MFC对话框建立初始化函数BOOL HistoryData::OnInitDialog()
一、在要建立OnInitDialog()的对话框上右击建立类向导,如下图: 二、为对话框建立消息映射,如下图:在classwizard的Message Maps中的Object IDs选择该对话框的类名(下图为CNew3),并且在Class name也选该类名,接着在Messages中选择WM_INITDIALOG并双击,就会在Member funtions中自动生转载 2015-08-07 11:44:38 · 962 阅读 · 0 评论 -
MFC消息映射原理
原引自博客园 http://www.cnblogs.com/lidabo/p/3694726.html多态的实现机制有两种,一是通过查找绝对位置表,二是查找名称表;两者各有优缺点,那么为什么mfc的消息映射采用了第二种方法,而不是c++使用的第一种呢?因为在mfc的gui类库是一个庞大的继承体系,而里面的每个类有很多成员函数(只说消息反映相关的成员函数啊),而且在派生类中,需要改写的也比较转载 2015-07-30 10:44:24 · 604 阅读 · 0 评论 -
MFC_CString TCHAR的互相转换
CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength()转载 2015-08-27 11:18:03 · 2728 阅读 · 0 评论 -
MFC_设置按钮的文本
方法一:CButton *pBtn = (CButton *)GetDlgItem(IDC_BTN_TEST);if (pBtn->GetWindowText() == _T("开始")){ pBtn->SetWindowText(_T("停止"));}else{ pBtn->SetWindowText(_T("开始"));}转载 2015-08-27 17:24:25 · 6234 阅读 · 0 评论 -
Windows,C/C++_字符串转换_MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解
MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解 本文内容摘自《Windows核心编程》(第五版)Page26。 文中已经详细阐述了这两个函数的用法,我这里仅仅作为备忘录。函数的参数请参考百度百科MultiByteToWideChar和WideCharToMultiByte。函数原型:转载 2015-08-12 20:43:11 · 2401 阅读 · 0 评论 -
MFC_CString 转换成TCHAR *的方法
今天遇到一个难题,以前一直都是从TCHAR *转换到CString,今天需要CString 转换成TCHAR *的方法,找了一下MSDN文档,没有发现有现成的函数可以用。后来上网搜索了一下,方法还不少。如下几种:方法一,使用强制转换。例如:CString theString( "This is a test" );LPTSTR lpsz =(LPTSTR)(LPCTSTR)th转载 2015-08-27 11:17:02 · 2596 阅读 · 0 评论 -
C/C++,Windows/MFC__char与TCHAR相互转化
char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiBytechar转TCHAR如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写[cpp] view plaincopychar strUsr[10] = "Hel转载 2015-08-12 20:52:39 · 1119 阅读 · 0 评论 -
Windows/MFC,C++中的TCHAR体系/char体系/WCHAR体系及其相互转换
Windows/MFC,C++编程中经常遇到UNICODE、ANSI字符串,并需要对这些字符串进行转换,本文对这些体系与其转换进行了总结。第一篇:基础篇主要分为3大体系:TCHAR, WCHAR, char 3大体系常用函数及解析详见博文:http://blog.youkuaiyun.com/u010003835/article/details/47344775原创 2015-08-13 11:37:41 · 3044 阅读 · 0 评论 -
MFC/Windows_Windows/MFC对消息处理的顺序
MFC应用程序中处理消息的顺序 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc()转载 2015-08-13 16:10:48 · 549 阅读 · 0 评论 -
MFC__Dialog去掉右上角的关闭按钮
对话框模板属性中设置System Menu 为False原创 2015-09-18 14:52:15 · 8876 阅读 · 1 评论