C++(MFC)编程中遇到的的一些函数
memset
void *memset( void *dest, int c, size_t count );
dest:
Pointer to destination
c:
Character to set
count:
Number of characters
注意:这里count代表字符个数(字节数),如果为整数则为:整数个数*sizeof(int)
_T与L宏
L宏为宽字节宏,无论什么环境下都能转化为宽字符,即Unicode字符;
_T宏为一个适配宏,可使编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式(将括号后字符串转化为合适的类型),可增加程序的移植性,一般加上好。如_T('\')
GetClientRect(LPRECT)与GetWindowRect(LPRECT)区别
GetClientRect(LPRECT):获取控件大小,其left和top一定为0,right和bottom由窗口大小决定(相对于空间本身左上角得到的rect);
GetWindowRect(LPRECT):获取窗口相对于主程序窗口的位置(坐标),之后调用ScreenToClient(LPRECT)可以把坐标从窗口坐标转化为客户区域坐标;
OnMouseWheel,与OnMButtonDown, OnMButtonUp中输入点坐标的区别
OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)中pt表示鼠标点在屏幕坐标系中坐标,需要ScreenToClient(pt)才可转化到客户区坐标;
OnMButtonDown(UINT nFlags, CPoint point), OnMButtonUp(UINT nFlags, CPoint point)等中point表示的就是鼠标位于客户区中坐标;
Tokenize-字符串分割
声明:CStringT Tokenize( PCXSTR pszTokens , int& iStart ) const;
功能:从iStart位置取出字符串中含pszTokens分割符间的内容;
MFC实例:
CString str =_T("abc;efd;mfg");
vector<CString>s;
int pos = 0;
for(int i=0;i<3;i++)
{
s.push_back(str.Tokenize( “;” pos));
}
结果: s[3 ] = {abc,efd,mfg};
注意:pos值是不断变化的。每调用一地Tokenize,就移动一次,故只能用在提取时,用在其他地方(如判断语句条件中,会导致pos移动从而跳过某些字符串)
atoi与_wtoi——把字符串转换成整型数(ascii to int)
声明:int atoi(const char *nptr);
UNICODE中
_wtoi(const wchar_t *str);
单个Radio控件是否选中设置:
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE); //TRUE选中,FALSE未选中
((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck(); //状态获取,1——选上,0——没选上
C++(MFC)编程中遇到的的一些函数的更多相关文章
- VC++编程中常用的字符串转换函数
VC++编程中经常遇到不同编码编码的字符串之间需要转换的情况,以下简单提供几个不同编码字符串之间的转换函数: ANSI 字符串和Unicode字符串之间的转换 //Convert wide char ...
- 网络编程中的read,write函数
关于TCP/IP协议,建议参考Richard Stevens的<TCP/IP Illustrated,vol1>(TCP/IP详解卷1). 关于第二层面,依然建议Richard Steve ...
- Qt多线程编程中的对象线程与函数执行线程
近来用Qt编写一段多线程的TcpSocket通信程序,被其中Qt中报的几个warning搞晕了,一会儿是说“Cannot create children for a parent that is in ...
- Linux 网络编程中的read和write函数正确的使用方式
字节流套接字上的read和write函数所表现的行为不同于通常的文件IO,字节流套接字上调用read和write输入或输出的可能比请求的数量少,然而这不是出错的状态,例如某个中端使read和write ...
- linux网络编程中的shutdown()与close()函数
1.close()函数 int close(int sockfd); //返回成功为0,出错为-1 close 一个套接字的默认行为是把套接字标记为已关闭,然后立即返回到调用进程,该套接字不能再由cl ...
- 第三课——MFC编程
一.MFC概述 1. MFC简述 MFC不仅仅是一套基础类库,更是一种编程方式. 2. MFC由来 1987年微软公司推出了第一代Windows产品,并为应用程序设计者提供了Win16(16位Wind ...
- Linux编程中的坑——C++中exit和return的区别
今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: int main() { 创建一个分离线程 ...
- VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html 鸡啄米在上一讲中 ...
- C++ 关于MFC多线程编程中的一些注意事项 及自定义消息的处理
在多线程编程中,最简单的方法,无非就是利用 AfxBeginThread 来创建一个工作线程,看一下这个函数的说明: CWinThread* AFXAPI AfxBeginThread( AFX_T ...
随机推荐
- 2.1Android底层开发需要哪些工具
开发.测试和调试Linux驱动.HAL程序库需要的工具: (1)JDK6或以上版本: (2)Eclipse3.4或以上版本: (3)ADT(用于开发Android应用程序): (4)CDT(用于开发A ...
- 一个利用sed和awk处理文本的小栗子
这两天做<Linux操作系统>课程的作业,碰到了一个题目,感觉很有意思,很考验对awk掌握的熟练度,故特意拿来分享. 首先说题目是这样的,有这样一段文本: RECORD #这是多余的注释行 ...
- html/css 关于脱离文档流的几种情况
所谓的文档流 顾名思义就是按照顺序流下来,指的是html元素从上往下 从左往右的流式排列, 比如说写了5个Div,正常的文档流是依次显示这5个div块: 脱离文档流就是指它所显示的位置和文档代码就不一 ...
- (五)、nodejs使用bootstrap的样式进行分页
一.page方法 /****************************************************** * Created User: * Created Time: 201 ...
- 将List<T>转化成 DataTable--调整可空类型的转化错误
加载表结构并保持成XML string cmdText = @"select * from kb_lable_temp where 1=2"; using (SqlConnecti ...
- WordPress 非插件实现拦截无中文留言
Some Chinese Please 插件可以拦截不带中文字的留言,之前本博客一直在用效果不错,不写入数据库,可有效地减少 spam 对服务器的无谓使用,其实可以将插件简化一下,直接用代码实现.将下 ...
- Mysql varchar大小长度问题介绍
如果被 varchar 超过上述的 b 规则,被强转成 text 类型,则每个字段占用定义长度为 11 字节,当然这已经不是 varchar 了4.0版本以下,varchar(20),指的是20字节, ...
- DevExpress后置代码中初始化SQL数据源的方法
//初始化SQL数据源的提供者和连接字符串 函数 OK public virtual void InitSqlDataSource_ConStr(SqlDataSource sql_ds) { Con ...
- ElasticSearch.js
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- C语言中的堆与栈20160604
首先声明这里说的是C语言中的堆与栈,并不是数据结构中的!一.前言介绍:C语言程序经过编译连接后形成编译.连接后形成的二进制映像文件是静态区域由代码段和数据段(由二部分部分组成:只读数据 段,未初始化数 ...