07 2014 档案
IOCP~~
摘要:下载源代码原文网址:http://www.codeproject.com/KB/IP/iocp_server_client.aspx源码使用了高级的完成端口(IOCP)技术,该技术可以有效地服务于多客户端。本文提出了一些IOCP编程中出现的实际问题的解决方法,并提供了一个简单的echo版本的可以传输...
阅读全文
socket API详解
摘要:send函数intsend(SOCKETs,constcharFAR*buf,intlen,intflags);不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数...
阅读全文
重叠IO
摘要:一、 异步IO 说到重叠模型首先还是提一下异步IO比较好,因为从本质上讲,重叠模型也是一种异步IO模型。 我们知道,相对于计算机执行的其他操作而言,设备IO(文件、管道、套接字等)是比较慢的。于是在多线程结构中就考虑到采用异步的方式进行设备读写操作,即我们告诉系统对设备的读写数据,而同时应用程序的其...
阅读全文
重叠io操作
摘要:第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性...
阅读全文
WSAGetOverlappedResult函数
摘要:WSAGetOverlappedResult函数通过WSAWaitForMultipleEvents函数来得到重叠操作完成的通知,那么自然也需要一个函数来查询一下重叠操作的结果,定义如下BOOL WSAGetOverlappedResult( SOCKET s, // SOCKET,不用说了 LPW...
阅读全文
WSAWaitForMultipleEvents
摘要:WSAWaitForMultipleEvents函数 熟悉WSAEventSelect模型的朋友对这个函数肯定不会陌生,不对,其实大家都不应该陌生,这个函数与线程中常用的WaitForMultipleObjects函数有些地方还是比较像的,因为都是在等待某个事件的触发嘛。 因为我们需要事件来...
阅读全文
SocketAsyncEventArgs
摘要:SocketAsyncEventArgs是.net提供的关于异步socket类,封装了IOCP的使用,可以用它方便的实现NIO(non-blocking IO)NIO对于提升某些场景下Server性能和吞吐量有很大益处,准备在服务框架中使用它来编写简易rpc的部分不过例子还是感觉复杂了点,我只是需要...
阅读全文
C#中使用多线程访问Winform中控件的若干问题
摘要:我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}p...
阅读全文
C#中Dictionary的用法
摘要:在C#中,Dictionary提供快速的基于兼职的元素查找。他的结构是这样的:Dictionary ,当你有很多元素的时候可以使用它。它包含在System.Collections.Generic名空间中。在使用前,你必须声明它的键类型和值类型。 方法/步骤要使用Dictionary集合,需要导入C#...
阅读全文
System.Timers.Timer用法
摘要:System.Timers.Timer t = new System.Timers.Timer(5000); //设置时间间隔为5秒 private void Form1_Load(object sender, EventArgs e) { t.Elapsed += new System.Time...
阅读全文
C#中的异步调用及异步设计模式(三)——基于事件的异步模式
摘要:四、基于事件的异步模式(设计层面)基于事件的C#异步编程模式是比IAsyncResult模式更高级的一种异步编程模式,也被用在更多的场合。该异步模式具有以下优点:· “在后台”执行耗时任务(例如下载和数据库操作),但不会中断您的应用程序。· 同时执行多个操作,每个操作完成时都会接到通知(在通知中可以...
阅读全文
C#中的异步调用及异步设计模式(二)——基于 IAsyncResult 的异步设计模式
摘要:三、基于 IAsyncResult 的异步设计模式(设计层面)IAsyncResult 异步设计模式通过名为 BeginOperationName 和 EndOperationName 的两个方法来实现原同步方法的异步调用,如 FileStream 类提供了 BeginRead 和 EndRead ...
阅读全文
C#中的异步调用及异步设计模式(一)
摘要:近期项目中使用了不少异步操作,关于“异步”做个总结。总结的内容大部分都来自于MSDN,还有一些自己的心得。关于“异步”的使用可分为:使用层面和类库设计层面,细分如下:一、使用异步方式调用同步方法(使用层面)。二、使用 IAsyncResult 调用异步方法(使用层面)。三、基于 IAsyncResu...
阅读全文
[你必须知道的异步编程]——异步编程模型(APM)
摘要:本专题概要:引言你知道APM吗?你想知道如何使用异步编程模型编写代码吗?使用委托也可以实现异步编程,你知道否?小结一、引言 在前面的C#基础知识系列中 介绍了从C#1.0——C#4.0中一些主要特性,然而.NET 4.5更新,除了提供了一些新的类和一些新的模板外,对于C#语言也做了一定的更新,最重...
阅读全文
strncasecmp与strcasecmp用法
摘要:strcasecmp strcasecmp(忽略大小写比较字符串) 相关函数 bcmp,memcmp,strcmp,strcoll,strncmp 表头文件 #include 定义函数 int strcasecmp (const char *s1, const char *s2); 函数...
阅读全文
C语言之strrchr函数
摘要:【FROM MSDN && 百科】原型:char *strrchr(const char *str, char c);#include 找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果...
阅读全文
strrchr()函数
摘要:strrchr()函数:strrchr()函数的作用是: 查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符; 如果未能找到指定字符,那么函数将返回False。char *strrchr( char *str, int c );strrchr(...
阅读全文
recv函数的用法详解
摘要:recv函数int recv( SOCKET s, char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到...
阅读全文
select,poll,epoll用法
摘要:http://blog.csdn.net/sunboy_2050/article/details/6126712select用法#include #include #include #include int select(int n, fd_set *readfds, fd_set *writ...
阅读全文
字节序(Endian),大端(Big-Endian),小端(Little-Endian)
摘要:http://www.cppblog.com/tx7do/archive/2009/01/06/71276.html在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如...
阅读全文
select, iocp, epoll,kqueue及各种I/O复用机制
摘要:http://blog.csdn.net/heyan1853/article/details/6457362首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (selectandpoll)signal driven ...
阅读全文
select、poll、epoll的比较
摘要:linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct t...
阅读全文
Linux 非阻塞connect,错误码:EINPROGRESS
摘要:当我们以非阻塞的方式来进行连接的时候,返回的结果如果是 -1,这并不代表这次连接发生了错误,如果它的返回结果是 EINPROGRESS,那么就代表连接还在进行中。 后面可以通过poll或者select来判断socket是否可写,如果可以写,说明连接完成了。
阅读全文
阿里一面、二面路过,,口水都说干了。
摘要:抱着打酱油的心态参加了阿里的沙龙。。或许是第二题我给了个思路,简短自我介绍之后就是各种算法,记忆如下:1、数据挖掘有什么算法,你熟悉什么算法2、SVM有哪些优势,(x,y,z)三个特征如何用径向基核函数抽取第四维特征,这题想了好久。。好难啊。。3,推荐有什么算法,,你项目中用到什么算法。。4,us...
阅读全文
struct pollfd
摘要:struct pollfd2010年04月15日 星期四 下午 03:59int poll (struct pollfd *fds, size_t nfds , int timeout);struct pollfd {int fd; /* 文件描述符 */short events; /* 等待的事...
阅读全文
sockaddr与sockaddr_in
摘要:struct sockaddr { unsigned short sa_family; charsa_data[14]; };此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等...
阅读全文
setsockopt的作用
摘要:int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: I...
阅读全文
Java之RandomAccessFile小结
摘要:今天跟大家分享一下javase中的关于I/O的操作:有时我们需要在文件的末尾追加一些内容,在这时用RandomAccessFile就很好。这个类有两个构造方法:RandomAccessFile(Filefile,Stringmode) 创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 Fi...
阅读全文
疯狂JAVA讲义---第十五章:输入输出(上)流的处理和文件
摘要:在Java中,把这些不同类型的输入、输出抽象为流(Stream),而其中输入或输出的数据称为数据流(Data Stream),用统一的接口来表示,从而使程序设计简单明了。首先我要声明下:所谓的输入输出都是相对内存而言的还要讲几个基本概念:字节流和字符流,字节流8位,主要由InputStream和Ou...
阅读全文
java压缩解压zip文件,中文乱码还需要ant.jar包
摘要:va] view plaincopyprint?packagecn.cn;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStrea...
阅读全文
Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果
摘要:目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放。Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果。如果要实现这个效果,首先要搞清楚两大问题;1、来电时的代码主要实现流程。2、主流音乐播放器在播放过程中,如果...
阅读全文
Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
摘要:我想实现如下的场景,判断当前Android手机上是否正在播放音乐,如果是,通过某个特定的手势,或者点击某个按键,将当前我正在听的音乐共享出去。第一步,就是判断当前是否有音乐正在播放。最开始我想得有点复杂,以为要深入framework或更下层去做手脚才行,找了一下资料,发现AudioManager对外...
阅读全文
c++ vector反转reverse
摘要:[cpp] view plaincopytemplatevoidreverse(BidirectionalIteratorfirst,BidirectionalIteratorlast);[cpp] view plaincopy如果不是改变原来的容器,而是翻转之后放在新容器里面,直接用reverse...
阅读全文
C++的异常处理
摘要:一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具...
阅读全文
java final 关键字
摘要:根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的。”不想改变的理由由两种:一种是效率,另一种是设计。由于两个原因相差很远,所以关键子final可能被吴用。 接下来介绍一下使用到fianl的三中情况:数据,方法,类。 final数据许多编程语言都有某种方法,来...
阅读全文
java反射机制初探
摘要:反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分。在java语言中这是一个很重要的特性。下面是来自sun公司官网关于反射的介绍:Reflection is a feature in the Java programming language. It allows...
阅读全文
JAVA反射机制o
摘要:Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。 Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特...
阅读全文
Java反射机制
摘要:一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, ...
阅读全文
c+内存管理机制
摘要:内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的 检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过 的,除非放弃C+...
阅读全文
java内存空间详解
摘要:Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的...
阅读全文
JAVA内存管理再解
摘要:首先我们要明白一点,我们所使用的变量就是一块一块的内存空间!!一、内存管理原理:在java中,有java程序、虚拟机、操作系统三个层次,其中java程序与虚拟机交互,而虚拟机与操作系统间交互!这就保证了java程序的平台无关性!下面我们从程序运行前,程序运行中、程序运行内存溢出三个阶段来说一下内存管...
阅读全文
java内存管理机制
摘要:JAVA内存管理总结1.java是如何管理内存的Java的内存管理就是对象的分配和释放问题。(两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化...
阅读全文
JAVA内存管理
摘要:首先我们要明白一点,我们所使用的变量就是一块一块的内存空间!!一、内存管理原理:在java中,有java程序、虚拟机、操作系统三个层次,其中java程序与虚拟机交互,而虚拟机与操作系统间交互!这就保证了java程序的平台无关性!下面我们从程序运行前,程序运行中、程序运行内存溢出三个阶段来说一下内存管...
阅读全文
I-Keyboard
摘要:SPOJ Problem Set (classical) 14. I-Keyboard Problem code: IKEYBMost of you have probably tried to type anSMS message on the keypad of acellular phone....
阅读全文
正则表达式基本语法
摘要:1.正则表达式基本语法两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾...
阅读全文
右左法则----复杂指针解析
摘要:右左法则----复杂指针解析因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个...
阅读全文
int *a[] 与(int *)a【5】的区别
摘要:*a[5]是指针数组可以指向5个值(*a)[5]是一个指针,但这个指针只能指向包含5个元素的一维数组 a是一个数组,每个元素都是个指针。b是一个指针,指向一个数组1.int*a[5]:指针数组。本质是数组。sizeof(a)=20。sizeof计算数组的大小。5个int型即为20.sizeof(...
阅读全文
ADO接口之_RecordsetPtr
摘要:转自:http://hi.baidu.com/%CE%D2%B6%CF%C1%CB%CB%BC%C4%EE/blog/item/e057c526c6af6c29c995596e.html_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录...
阅读全文
VC 调试技术与异常(错误)处理 VC 调试技术与异常(错误)处理
摘要:调试技术与异常(错误)处理(1)转载自52PK游戏论坛跟踪与中间过程输出也许一个开发人员一半以上的时间都是在面对错误,所以好的调试/查错方法(工具)会减轻我们工作的负担,也可以让枯燥的DEBUG过程得以缩短。VC开 发环境所提供的调试环境是很优秀的,我们可以运用单步运行,设置断点的方法来查找问题所在...
阅读全文
C++笔记16之const的用法总结
摘要:const主要是为了程序的健壮型,减少程序出错.最基本的用法:[cpp] view plaincopyconstinta=100;b的内容不变,b只能是100也就是声明一个int类型的常量(#defineb=100)intconstb=100;//和上面作用一样const指针和引用一般用在函数的参数...
阅读全文
VC++中MessageBox的常见用法详解
摘要:消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","这是标题"); 3.MessageBox("这是一个确定 取消的消息框!","这是标题",...
阅读全文
关于:Warning: skipping non-radio button in group的处理方法整理
摘要:下面讲的是一个意思:The problem is that the next control in the tab order following the last radiobutton of your group must have the WS_GROUP flag set.1:ex:Cont...
阅读全文
MFC DestroyWindow[转]
摘要:考虑单窗口情况: 假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序: 1. 手工调用pWnd->DestroyWindow(); 2. DestroyWindow会发送WM_DESTROY; 3. WM_DESTROY对应的消息处理函数是OnD...
阅读全文
窗口关闭的消息路由
摘要:有时候当我们点击窗口右上角的关闭按钮时,窗口在关闭之前会弹出一个提示对话框,询问我们是否真的要关闭窗口 。当我们点击确定以后,窗口会正常关闭,否则一切如常。那么上面的功能是如何实现的呢?让我们先来了解一下窗口关闭时的消息路由:首先当我们点击关闭按钮后,窗口会发出WM_SYSCOMMAND消息,此消息...
阅读全文
vc++ 不同对话框中传递信息的方法(基于自定义消息SendMessage) (转载)
摘要:转载自:http://blog.csdn.net/myj0513/article/details/6827360背景: 新建了一个基于对话框的MFC程序,在主对话框中添加tabcontrol控件,又新建了两个Dialog(CDialog1和CDialog2),将它们设为tabcontrol控件的子对...
阅读全文
模式对话框与非模式对话框的区别
摘要:模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系 统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统属性窗口进行操作就操作不了,这种叫做模式对话框;关闭技术支持信息,在系统属性里选择 硬件,点击设备...
阅读全文
StretchBlt函数和BitBlt函数的用法
摘要:StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像一、StretchBlt函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩。也即是将内存中的位图拷贝到屏幕上,并且可以根据屏幕画图区的大小来进行伸缩,适应响应的屏幕(或图像控件)BOOL Stre...
阅读全文
vc 使窗口置顶 在最前面
摘要:bool SetWindowTop(CWnd* pWnd){ if(!pWnd) { return false; } if(pWnd->GetExStyle()&WS_EX_TOPMOST) { return true; } else { int i= pWnd->SetWindowPos(&CWn...
阅读全文
CWnd::MoveWindow 详解
摘要:CWnd::MoveWindowvoid MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE )...
阅读全文
窗口移动、改变大小的有关消息
摘要:窗口移动、改变大小的有关消息 将要提到的四条消息是:WM_MOVE、WM_SIZE、WM_ACTIVATE、WM_PAINT。 头两个是很简单的。当窗口被用户移动时将发送WM_MOVE消息,窗口新位置的坐标储存在lparam中。(消息在lparam和wparam中被进一步描述,它们是消息控制函数的...
阅读全文
转载VC6.0 子窗口和父窗口
摘要:这个是我周一在一家公司做的上机题中的一道,当场没做出来。我当时只跟考官说了设计思路,是带回来查了几本资料书之后才完成的。因为有半个学期没用VC开发了……,最近一直都在实践ASP.NET相关的…… 建立一个基于对话框的项目,在项目中实现点击“选项一”时切换到上面效果的子对话框(嵌入在主对话框内部的),...
阅读全文
MFC 的SetWindowPos 用法
摘要:转自于:http://hi.baidu.com/max_new/blog/item/e2bbe607b1f127c57b8947c0.html许多软件,特别是占桌面面积不是很大的软件,通常都提供了一个常居顶端的功能(可能有的软件不是这么叫法,但作用是相同的),它的作用是保持窗口一直在其他窗口的上面,...
阅读全文
vc创建模态和非模态对话框
摘要:模态对话框的创建创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能就是创建并显示一个模态对话框,关闭模态对话框的函数是EndDialog,该函数需要一个参数,这个参数就是DoModal函数的返回值。CTestDlg dlg;dlg.DoModal(); //打开模态对话框...
阅读全文
SetFocus (GetDlgItem (hwnd, idFocus))函数的各参数的具体含义
摘要:Setfocus(HWMD hwnd):将窗口hwnd设置成获得焦点GetDlgItem (hwnd, idFocus):此函数返回一个句柄具体参数的含义:hwnd:包含该窗口标志位的对话框的句柄idFocus: 指定将被检索的控件标识符,可以通过idFocus= GetWindowLong (hw...
阅读全文
窗口句柄浅析和获取窗口句柄的方法
摘要:句柄(HANDLE)是Windows程序中一个重要的概念,使用也非常频繁。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标识这些资源的标识号,即句柄。窗口句柄是windows句柄的一种,且是重要的一种句柄。在Windows应用程序中,窗口...
阅读全文
获取窗口句柄
摘要:main getparent()为对话框的父窗口句柄不管窗口中有什么控件,button也好,ListBox也好,都可以通过GetDlgItem来获取该控件窗口句柄,比如Button的控件ID为IDC_BUTTON1,则HWND hWnd = GetDlgItem(IDC_BUTTON1)->GetS...
阅读全文
GetWindowRect和GetClientRect的区别详解
摘要:一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的?先说说什么叫逻辑坐标?讲到逻辑坐标,它相对的一个概念是设备坐标,是为了屏蔽掉不同设备属性差别而设置的...
阅读全文
RepositionBars的用法和参数的意义(引用别人的)
摘要:MFC窗口位置管理详细分析及实例 在一般用MFC编写的程序的窗口客户区中,可能有好几个子窗口(具有WM_CHILD风格的窗口)。上边是工具栏,中间是视图窗口,下边是状态栏。三个窗 口在框架的客户区里和平共处,互不重叠。主框架窗口的尺寸改变了,别的子窗口都能及时调整自己的尺寸以便保持相互位置关系不变,...
阅读全文
CImageList类Create函数参数解析
摘要:前面提到了CImageList类的Create(...)函数,虽然MSDN上已经有所解释,但仍有网友问到参数的具体含义,下面就我的理解,对参数进行一次轻量级的剖析 函数原型(其他重载函数请参看msdn):BOOL Create( int cx, int cy, UINT nFlags, ...
阅读全文
自己动手绘制ToolBar
摘要:VCMFC工具栏(CToolBar)控件工具栏工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建,如CButton按钮类,现举一个用代码创建按钮控件并显示在窗口...
阅读全文
_RecordsetPtr使用方法
摘要:_variant_t vUsername,vID,vname; //变量声明_RecordsetPtrm_pRecordset;//记录集CString strid;_ConnectionPtr connection;m_pRecordset.CreateInstance(__uuidof( Rec...
阅读全文
用Execute操作数据库
摘要:1、原型是:_ConnectionPtr Execute( _bstr_t CommandText, VARIANT * RecordsAffected,long Options ); 参数 1. CommandText是命令字符串,通常是SQL命令,也可以是表名、存储过程等 2. Record...
阅读全文
Visual C++中的ADO编程
摘要:摘 要:本文介绍了微软推出的以ActiveX技术为基础的ADO数据存取技术,分析了ADO的工作原理,并用Visual C++说明了ADO数据访问技术的实现方法。关键字:ADO;连接对象;OLE DB;数据存取;记录集ADO(ActiveX Date Object)是Microsoft数据库应用程序开...
阅读全文
句柄获取方法
摘要:句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):0。获取所在类窗口的句柄: this->m_hwnd1。主窗口的句柄:无论在主窗口类内,还是子窗口类内,获取主窗口句柄的方法:AfxGetMainWnd()->m_hWnd,如:::SendMessage(AfxGetMainW...
阅读全文
从窗口句柄得到菜单句柄(从HWND得到HMENU)
摘要:1. 如果HWND是主窗口,可以使用API: GetMenu(...) 得到属于主窗口的句柄,原型如下:HMENU GetMenu(HWND hWnd);在MFC中原型如下:CMenu* GetMenu( ) const;2. 如果HWND就是菜单的窗口,想直接转换成菜单句柄,则需要发消息了:消息I...
阅读全文
vc中使用SendMessage正确发送自定义消息的方法
摘要:最近在用VC2008做开发,后来由于要用到消息的发送,而且需要自定义消息,在网上查找了很多例子,根据他们所说的,虽然大致都差不多,但是基本上没有 一个能完全做出来的。要知道VC编程有一个小地方出错,都可能是个让你头晕脑胀的事情。经过我后来不但探索,经过改进之后,一点错误都没有,现在贴出来供 大家参考...
阅读全文
MFC中不同对话框间使用SendMessage发送自定义消息的具体实现
摘要:1. 基本知识SendMessage的基本结构如下:SendMessage( HWND hWnd, //消息传递的目标窗口或线程的句柄。 UINT Msg, //消息类别(这里可以是一些系统消息,也可以是自己定义,下文具体介绍,) WPARAM wParam, //参数1 (WPARAM 其实是与U...
阅读全文
CString/string 区别及其转化
摘要:利用MFC进行编程时,我们从对话框中利用GetWindowText得到的字符串是 CString类型,CString是属于MFC的类。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将 CString类型转化char*等等其他数据类型的情况。这里总结备忘于此!首先...
阅读全文
string转换成char*
摘要:string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();2.c_str如:string str="gdfd"; char *p=str.c_str();3. co...
阅读全文
afx_msg解释
摘要:以前一直不知道AFX_MSG是什么意思,只是觉得它应该是个消息映射函数,但是具体代表什么意思,会返回一个什么样的值是一点都不清楚,今天查了下资料,把查到的东西放这,以免以后忘了还得再查。在头文件(DrawView.h)中声明消息响应函数原型。//{{AFX_MSG(CDrawView) //注释宏a...
阅读全文
SQL日期格式转换
摘要:使用CONVERT:CONVERT(data_type[(length)],expression[,style])selectCONVERT(varchar,getdate(),120)2004-09-1211:06:08selectreplace(replace(replace(CONVERT(v...
阅读全文
CDialog
摘要:对话框和对话框类CDialog对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。模式和无模式对话框对话框分两种类型,模式对话框和无模式对话框。模式对话框一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_...
阅读全文
对话框及其子控件的内部创建过程之详细分析
摘要:创建非模态对话框时,首先程序最先开始调用CreateDialogIndirectParam函数来创建对话框, 在CreateDialogIndirectParam中调用CreateWindowEx函数创建对话框主框架, 这时 CreateWindowEx函数发出WM_CREATEX消息,开始调用On...
阅读全文
CDialog类
摘要:CDilalog包含三个关键函数:OnInitDialog、OnOK和OnCancel,可以覆盖这三个函数初始化对话框、响应点击OK和Cancel按钮。尽管每个函数都响应一条对话框消息,但是不需要你提供消息映射,因为CDialog已经做了消息映射,并把它们视为一般的虚函数。CDialog还提供了这三...
阅读全文
CreateDialog()与CreateDialogIndrect()
摘要:CreateDialog()概述函数功能:CreateDialog宏从一个对话框模板资源创建一个无模式的对话框,CreateDiaog宏使用CreateDialogParam函数。函数原型:HWNDCreateDialog(HINSTANCEhlnstance,LPCTSTRlpTemplate,H...
阅读全文
VC++ 定制应用程序的外观
摘要:一.在窗口创建之前改变窗口的大小和标题要改变应用程序窗口的大小可以通过在PreCreatWindowl函数中修改CREATSTRUCT结构体变量成员的值 BOOL CMainFrame::PreCreatWindow(CREATSTRUCT cs) { if(!CFrameWnd::PreCreat...
阅读全文
_variant_t与其他数据类型的转换
摘要:转自:http://kuaixingdong.blog.hexun.com/29627840_d.html我们先看看COM所支持的一些类型的基本类:(微软提供,在comdef.h中定义)在COM中使用的标准类Class如下所示:_bstr_t:对BSTR类型进行打包,并提供有用的操作和方法;_com...
阅读全文
AfxMessageBox和MessageBox区别
摘要:如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessage...
阅读全文
no_namespace rename 在C++中是什么意思啊
摘要:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")#import生成文件 msado15.tlh,默认是有n...
阅读全文
stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编
摘要:sstdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h?Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重...
阅读全文
MFC自动生成代码详解(一)
摘要:首先声明这篇博客是给MFC刚刚上路的coder准备的,老鸟们就自觉无视我吧!大家有没有感觉,创建MFC工程时他总会生成一大堆文件一大堆代码。虽然给我们带来了便利,但是调试的时候碰到这些代码总是畏首畏脚的,从来不敢动他们。这篇博客就来帮大家解决这个问题。让你在熟悉他们的作用同时,真正的不怕他们!现在我...
阅读全文
MFC中添加新的对话框
摘要:MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框。这里总结下自己最近使用的方法。 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新...
阅读全文
MFC 怎样获得某个窗口的句柄?
摘要:GetSafeHandle();this-> hWnd;GetDlgItem(hwnd,ID);//获取窗口ID所对应的HWND的子窗口句柄 在主窗口中,如果要用到父窗口的句柄,可以用 HWND GetParent(HWND hWnd) 得到 参数为当前所在子窗口的句柄,函数的...
阅读全文
MessageBox的常见用法
摘要:一 函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗...
阅读全文