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 ...
随机推荐
- 007Linux在线升级yum
1.Linux下如何安装软件:利用rpm命令进行安装: 2.rpm优点:安装过程很简单,不需要做额外的配置逻辑,拿到安装包,通过rpm命令就可以安装: 3.rpm缺点: (1)需要自己四处去找和系统版 ...
- systemctl
旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig - ...
- C++利用注册表添加桌面右键新建菜单
对于程序员来说,新建一个cpp文件是再频繁不过的事情了. 为了方便,我们习惯在桌面右键新建文件,而不是新建一个文本文档,然后修改后缀名. 百度谷歌查询了一下,终于知道如何添加注册表. 手痒,抽出时间用 ...
- openssl mac中使用终端生成RSA私钥和公钥文件
RSA密钥生成命令生成RSA私钥openssl>genrsa -out rsa_private_key.pem 1024生成RSA公钥openssl>rsa -in rsa_private ...
- 通过Migration在EF6中用多个DbContext
通过Migration在EF6中用多个DbContext EF EF6 C# Migration 通过Migration在EF6中用多个DbContext 前言 实现目标 设置多数据上下文 更新数据脚 ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- Mysql的cmake编译与安装
Mysql的cmake编译与安装 实验准备环境: 我的操作系统是centos6.6 编译安装MariaDB之前,我们需要准备一些需要的环境 1.开发包组套件 [root@node19 ~]# yum ...
- Command
#include <iostream> using namespace std; #define DESTROY_POINTER(ptr) if (ptr) { delete ptr; p ...
- POJ C++程序设计 编程题#3 编程作业—运算符重载
编程题 #3 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 写一个二维数组 ...
- Check for Data Duplicates on a Grid
Here is a piece of code to prevent duplicate data on a specific field on a page grid. You can of cou ...