1,我在网上找了很多关于截取屏幕的代码,虽然可以截取整个屏幕的图,但是都发现无法像Print Screen键那样全屏截图后还可以把鼠标光标截下来,请问有没有办法可以把鼠标也截取下来?2,new完一个对象后一定要delete的吗?
我找到一个示例工程,里面new了一个继承于CWinThread的线程类对象,然后只要向这个对象发送一个消息,让它响应这个消息,这个线程类对象执行PostQuitMessage(0);后,继而执行ExitInstance(),然后执行自己的虚构函数,这时退出程序后发现竟然没有泄漏内存!!试验了用TerminateThread后,发现只要执行了线程类的虚构函数后,就会自动释放内存,不一定要用delete来释放...如果是这样的话,那么我想问一下,是不是只要执行了类对象的虚构函数就不一定要delete呢?回答一个问题30分,希望各位多多帮忙..
我找到一个示例工程,里面new了一个继承于CWinThread的线程类对象,然后只要向这个对象发送一个消息,让它响应这个消息,这个线程类对象执行PostQuitMessage(0);后,继而执行ExitInstance(),然后执行自己的虚构函数,这时退出程序后发现竟然没有泄漏内存!!试验了用TerminateThread后,发现只要执行了线程类的虚构函数后,就会自动释放内存,不一定要用delete来释放...如果是这样的话,那么我想问一下,是不是只要执行了类对象的虚构函数就不一定要delete呢?回答一个问题30分,希望各位多多帮忙..
2.当然要调用delete,当然有肯能不是你调用的,一些框架已经帮你调用了,你没看到而已。
CWinThread有一个Delete函数,你可以再那里打个断点,看看线程结束的时候有没有运行。
void CWinThread::Delete()
{
// delete thread if it is auto-deleting
if (m_bAutoDelete)
delete this;
}
===========
new之后一定要delete的。对于你所说的情况,CWinThread中有一个成员: m_bAutoDelete,如果设为TRUE的话,它会自己delete的。
=============
传统的方法估计是取不到鼠标的。你找一下用DirectX实现屏幕截图的例子看看。
2. new和delete是对应的,有些类在自身函数的内部new了,你使用它以后不再需要的时候可能需要自己delete释放,比如GDI+类,有些类你new了以后,不需要自己手动去delete,因为在这些类中自身的函数有delete操作,比如CFrameWnd/CView类的OnNcDestroy函数
绘制鼠标的话怎样绘制??有什么API函数?