MFC
ccfxue
这个作者很懒,什么都没留下…
展开
-
当你的登录对话框是主对话框时
ChildDlg::OnInitDialog函数中加入以下代码CWnd *pParent = GetParent(); //获取父窗口指针SetParent(NULL); //强制与父窗口脱离关系.pParent->ShowWindow(SW_HIDE); //隐藏父窗口.这时因为子窗口已经跟父窗口脱离的关系 , 所以主窗口隐藏后, 子窗口仍然显示.在MainDlg转载 2016-03-16 14:53:57 · 254 阅读 · 0 评论 -
在模态对话框中设置左上角图标
在对话框的OnInitDialog()中添加HICON m_hIcon; //修改对话框的图标 m_hIcon=AfxGetApp()->LoadIcon(IDI_ICON3); SetIcon(m_hIcon,TRUE);原创 2016-03-16 18:17:35 · 969 阅读 · 0 评论 -
让模态对话框最小化时,任务栏显示图标
在对话框的OnInitDialog()中 ModifyStyleEx(0,WS_EX_APPWINDOW);//让模态对话框在任务栏上显示图标 //ShowWindow(SW_SHOW);原创 2016-03-16 18:19:10 · 1509 阅读 · 0 评论 -
FD_READ FD_WRITE触发时机
FD_WRITE触发条件:1.client 通过connect(WSAConnect)首次和server建立连接时,在client端会触发FD_WRITE事件2.server通过accept(WSAAccept)接受client连接请求时,在server端会触发FD_WRITE事件3.send(WSASend)/sendto(WSASendTo)发送失败返回WSAEWOULDBLOCK转载 2016-03-29 13:56:36 · 678 阅读 · 0 评论 -
char*与LPCTSTR,LPTSTR的转换
2005默认使用Unicode字符集,在创建项目时可以指定为多字节字符集,也可以创建之后再修改。如果只是要把LPTSTR指向的Unicode字符串转换为LPSTR字符串,可以用WideCharToMultiByte函数。MSDN中有参数说明和例子。 我一般用char * 和CString VC里一般都提供CString的接口 否则也有LPCTSTR的转载 2016-03-29 14:35:57 · 3933 阅读 · 0 评论 -
Unicode下CString和char *之间的互相转换
CString中存储的字符的数据类型为wchar_t类型。一、CString转换为char *(1)方法一:使用wcstombs()[cpp] view plain copy#include using namespace std; #include int main() { CStr转载 2016-03-29 15:51:37 · 781 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解(转)
MultiByteToWideChar: 函数功能:该函数映射一个字符串到一个宽字符(unicode)的字符串。由该函数映射的字符串没必要是多字节字符组。 函数原型:int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPW转载 2016-03-29 16:32:18 · 439 阅读 · 0 评论 -
GDI 字体 设备上下文 绘图
GDI(Graphics Device Interface),图形设备接口,是Windows提供的一些函数和结构,用于在显示器和打印机上显示图形。我们在MFC开发中经常会使用GDI来输出文本或图形图像(当然现在也有了GDI+,本教程主要讲解GDI)。文本实际上就是一种特殊的图形,它只不过是根据事先指定的“字体”绘制出来的图形。 字体通常用来为字符集中每一个字符,如字母、数字、标点符转载 2016-03-05 09:08:59 · 742 阅读 · 0 评论 -
带你玩转Visual Studio——带你理解多字节编码与Unicode码
上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的一个地方,我们对它进行了总结和归纳。本篇文章我们将继续讲解C++开发中容易混淆的另一个概念——多字节字符集与Unicode字符集。多字节字符与宽字节字符char与wchar_t我们知道C+转载 2016-03-29 15:26:16 · 763 阅读 · 0 评论 -
WideCharToMultiByte
int WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCSTR lpDefaultChar,LPBOOL lpUsedDefaultChar);此函数把转载 2016-03-29 17:48:26 · 3304 阅读 · 0 评论 -
char 转wchar_t 及wchar_t转char
char 转wchar_t 及wchar_t转char原文来自 http://haofu123.blog.163.com/blog/static/178294920096243161997/利用widechartomultibyte来转换的函数通常适合于window平台上使用#include #include int _tmain(int argc, _转载 2016-03-30 09:38:43 · 393 阅读 · 0 评论 -
MultiByteToWideChar 和 WideCharToMultiByte 中第1个参数的理解
MultiByteToWideChar 和 WideCharToMultiByte 中第1个参数的理解MSDN说:Specifies the code page to be used to perform the conversion,我的理解是:这2个都是多字符集中的某一个(如ansi或是utf-8)转成宽字符(unicode),如:int len=MultiByteToWi转载 2016-03-30 11:02:44 · 731 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解
本文内容摘自《Windows核心编程》(第五版)Page26。 文中已经详细阐述了这两个函数的用法,我这里仅仅作为备忘录。函数的参数请参考百度百科MultiByteToWideChar和WideCharToMultiByte。函数原型:int MultiByteToWideChar( UINT CodePage, DWORD dwFlags,转载 2016-03-30 11:27:50 · 3294 阅读 · 0 评论 -
C 语言字符数组的定义与初始化
1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I','','a','m','',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(转载 2016-03-30 15:23:56 · 4691 阅读 · 0 评论 -
strlen和sizeof的区别
本文转载自http://blog.csdn.net/niushuai666/article/details/7677210一、sizeof sizeof(...)是运算符,而不是一个函数。 一个简单的例子:int a;cout 在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。转载 2016-03-30 15:33:26 · 300 阅读 · 0 评论 -
在Dialog中button与回车键
在Dialog中button与回车键 1, 如果该Dialog中,某个button拥有focus,则敲回车键时会响应该按钮;注:button拥有focus的方法:(a)使用Tab键切换到某按钮;(b)在建立Dialog时设定Tab Order,把某一button的tab顺序设为1,则该Dialog初始时,这个button拥有focus;(打开资源(.rc)文件,可以发现得到焦转载 2016-03-18 13:28:43 · 5698 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决这个问题转载 2016-04-01 11:58:26 · 680 阅读 · 0 评论 -
jsoncpp简单示例
1、 编译jsoncpp 从(http://jsoncpp.sourceforge.net/)下载源码包“jsoncpp-src-0.5.0.tar.gz”,解压后在其解压后目录中运行$ scons platform=linux-gcc 编译出来的库文件在其libs/ linux-gcc-4.4.2目录下,有libjson_linux-gcc-4.4.2_libmt.so和libj转载 2016-04-01 15:45:44 · 324 阅读 · 0 评论 -
MFC修改button的颜色、背景、边框
MFC的button控件是一个不同于其他控件,其CButtton类是CWnd的一个子类,在修改button的背景、颜色和边框的时候必须自己进行编写一个新的类,如CMyButton。下面是进行背景、颜色、边框修改的步骤:1.在项目->添加类->CMyButton。这样会自动生成两个文件,一个.CPP文件和一个.h文件。例如CMyButton.cpp和CMyButton.h转载 2016-03-10 15:11:06 · 10471 阅读 · 2 评论 -
MFC编辑框设置,输入、输出数据最多保留5位小数
1.获取文本改变(输入更多字符时)的消息时,获取输入的内容,判断小数点后位数(笨办法是查找小数点位置),如果超出要求,就通过sprintf使用%.5f这样的办法,把输入的数字改为符合需求的格式,然后更新编辑框里面的文本。 2.双击Edit控件,添加消息处理函数,将上面这段代码放在里面.可以这样(Unicode版本)CString strText, strTemp;// 为转载 2016-03-22 10:57:13 · 7895 阅读 · 0 评论 -
Cstring中GetBuffer()方法的主要作用
GetBuffer()主要作用是将字符串的缓冲区长度锁定 CString::GetBuffer有两个重载版本:(1)LPTSTR GetBuffer( );(2)LPTSTR GetBuffer(int nMinBufferLength)在第二个版本中,当设定的长度小于原字符串长度时,nMinBufLength = nOldLen,该参数转载 2016-03-22 11:24:36 · 16522 阅读 · 0 评论 -
VC中数字与字符串转换方法
字符串转数字1.CRT函数 ASCIIUNICODETCHARVS2005intatoi_wtoi_tstoi_ttoi_atoi_l_wtoi_llong转载 2016-03-22 11:26:32 · 2850 阅读 · 0 评论 -
CString类常用方法----Left(),Mid(),Right()……
CString Left( int nCount ) const; //从左边1开始获取前 nCount 个字符CString Mid( int nFirst ) const; //从左边第 nCount+1 个字符开始,获取后面所有的字符CString Mid( int nFirst, int nCou转载 2016-03-22 11:33:08 · 459 阅读 · 0 评论 -
MFC实现Edit输入限制(只允许输入数字,负号和小数点)
1)添加个C++类 eg. class Dot:public CEdit 2)给这个类添加onChar()消息 afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); 3)*.cpp中void Dot::OnChar(UINT nChar, UINT nRepCnt,转载 2016-03-22 13:46:27 · 10609 阅读 · 0 评论 -
下MFC中对象、句柄、ID之间的区别.
Windows程序中,有各种各样的资源(窗口、图标、光标),系统在创建这些资源的时候会为他们分配内存,并返回标识这些资源的标识号,即句柄HANDLE(ID)。图标句柄(HICON)、光标句柄(HCURSOR)、画刷句柄(HBRUSH)。 为什么有个窗口对象还要窗口句柄呢?还有什么线程句柄,甚至还有控件ID和进程ID呢?MFC中的对象,比如应用程序对象,视图对象等,是对象就会占用内存空间,我们转载 2016-03-11 12:11:48 · 692 阅读 · 0 评论 -
CString的方法
CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456"); CString csStr2(csStr);CString( TCHAR ch, int nRepeat = 1 );例:CString转载 2016-03-22 17:56:53 · 558 阅读 · 0 评论 -
用 RoundTo、Format、FormatFloat、FormatCurr 格式化的效果
用 RoundTo、Format、FormatFloat、FormatCurr 格式化的效果RoundTo--------------------------------RoundTo(1.115,-2)=1.11RoundTo(1.125,-2)=1.12RoundTo(1.135,-2)=1.13RoundTo(1.145,-2)=1.14Rou转载 2016-03-22 18:02:00 · 882 阅读 · 0 评论 -
MFC自绘控件与美化
http://www.360doc.com/content/13/0521/10/8236462_286967115.shtml转载 2016-03-11 17:34:45 · 1050 阅读 · 0 评论 -
C++解析UTF8字符流转换
如果你本地程序是UNICODE编码的话,你需要先转换到ANSI,再从ANSI转换到UNICODE。 #include #include #include using namespace std;std::wstring UT2WC(const char* buf){ int len = MultiByteToWideChar(CP_UTF8,转载 2016-04-05 09:17:50 · 1519 阅读 · 0 评论 -
JSONCPP介绍及使用
一、JSON简介JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。JSON由两种基本结构构成:1)"名称/值"对的集合,可以理解为对象。2)值的组合,可以理解为数组。JSON对象简单示例示例1:{ "header": { "pid": "10",转载 2016-04-05 09:19:58 · 357 阅读 · 0 评论 -
setlocale函数
针对无法读取中文路径下的文件的问题,只要在解析模型配置文件时,加入一句: setlocale(LC_ALL,"chs");即可。setlocale函数原形为: char *setlocale( int category, const char *locale );头文件:所支持的操作系统为:ANSI, Win 95, Win NT对于简体中文可以使用如下设置转载 2016-04-05 09:40:10 · 760 阅读 · 0 评论 -
string 与char* char[]之间的转换
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,转载 2016-04-05 11:01:58 · 282 阅读 · 0 评论 -
MFC实现对话框自适应
BOOL Zoom_Window(HWND hWnd, CRect TaregetEX_Pos, LPRECT mOrgRect=NULL, BOOL bZoomEx_Only=FALSE){ if(hWnd) { BOOL IsVisable = IsWindowVisible(hWnd); if(!bZoomEx_Only) { ::SetWin转载 2016-03-12 15:07:54 · 1158 阅读 · 1 评论 -
VC之美化界面篇
VC之美化界面篇 (转)本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 1. 美化界面之开题篇相信使用过《转载 2016-03-12 17:40:13 · 7734 阅读 · 1 评论 -
让用VS2012/VS2013编写的程序在XP中顺利运行
本文转载自:http://blog.csdn.net/asanscape/article/details/38752655微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在Vista/Win7/Win8上运行。但幸好还保留了生成XP程序的设置项。XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们。 1. 项目菜单->项目属性->转载 2016-04-05 15:56:06 · 843 阅读 · 0 评论 -
http和socket之长连接和短连接区别
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接转载 2016-04-05 18:40:27 · 371 阅读 · 0 评论 -
DrawText参数介绍
DT_BOTTOM将正文调整到矩形区域底部,此值必须和DT_SINGLELINE组合使用。DT_CALCRECT决定矩形的宽和高。如果正文有多行,DrawText使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳正文的 最后一行,如果正文只有一行,则DrawText改变矩形的右边界,以容纳下正文的最后一个字符,上述任何一种情况,DrawText返回格式化正文的转载 2016-03-23 16:08:48 · 4238 阅读 · 0 评论 -
DrawText DT_NOPREFIX绘制细节
背景:采用DrawText输出文字,例如"你&我",一直显示为"你我"。解决:认真参阅DrawText用法,发现DT_NOPREFIX绘制项。DT_NOPREFIX关闭前缀字符的处理。 通常DrawText解释助记前缀字符,&为给其后的字符加下划线,解释&&为显示单个&。指定DT_NOPREFIX,这种处理被关闭。恍然领悟。转载 2016-03-23 16:10:43 · 575 阅读 · 0 评论 -
CHeaderCtrl用法
CListCtrl的表头可以单独使用,类CHeaderCtrl封装了这一功能. 1. 构造表头 和所有控件一样,都通过Create函数创建对象,Create函数的原型如下: virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID) 参数转载 2016-03-23 16:11:49 · 698 阅读 · 0 评论 -
PreSubclassWindow作用
通常情况下窗口是由用户创建的 CWnd::Create(..) ,在此流程中,MFC提供一个机会"PreCreateWindow()供用户在创建前作点手脚 。对于对话框等窗口是通过subclass方式交给用户的 ,系统读入对话框模板,建立其中各个子窗口 ,然后将各子窗口的消息处理函数替换成 对应的C++对象 的消息处理函数 (Subclass:子类化,或"接管") ;转载 2016-03-23 16:12:52 · 714 阅读 · 0 评论