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 ...
随机推荐
- 基于s5pv210嵌入式linux系统sqlite3数据库移植
基于s5pv210嵌入式linux系统sqlite3数据库移植 1.下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2.解压 tar xvf ...
- 设计模式-观察者模式(Observer)
简介: 观察者模式,也称为订阅-发布模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都得到通知并被自动更新. 主要由以下几个部分组成: a.Subject目标对象. ...
- iOS 开发经验谈,点击没响应事件
- 如何查询centos查看系统内核版本,系统版本,32位还是64位
查看centos内核的版本: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@build ...
- PL/SQL Developer基本用法
一.新建存储过程
- 关于MongoDb Replica Set的故障转移集群——理论篇
自从10 gen用Replica Set取代Master/Slave方案后生活其实已经容易多了,但是真正实施起来还是会发现各种各样的小问题,如果不小心一样会栽跟头. 在跟Replica Set血拼几天 ...
- 关于在javascript之中的时间格式;
如何获取当前日期: function CurentTime() { var now = new Date(); var year = now.getFullYear(); //年 var month ...
- php全角字符转换为半角函数 实例代码
PHP全角半角转换函数,把目前能找到的所有全角都列出来了一个个替换吧. 之前试过网上找的通过ASCII之类的字符替换,发现很多莫名其妙的问题.最后还是换成下面的字符替换方式了,把目前能找到的所有全角都 ...
- shopnc二次开发(二)
一般来说二次开发,多数就是修改界面和增加功能这两个需求 先说修改界面 mvc 架构的程序,在界面这里,基本就是调用数据. 常见的界面数据构架有三种 1.是业务端或者是控制端数据驱动界面,基本上是后台输 ...
- Objective-C关于数据处理
本文介绍如何在Objective-C中操作数据.我们将使用数组.指针.字符串等. 数组是数据项的一个集合,这些数据项叫做元素,我们可以用一个数组索引来引用元素.例如,如果把数字存储在一个名为array ...