123456

 

12 2011 档案

图片处理的一些函数
摘要:自己经常写的,写多了就慢慢总结下来,方便://---------------------------------------------------// 函数介绍:把资源写入lpImage,支持BMP,PNG,JPG.// 输入参数: // 输出参数:// 返回值: //---------------------------------------------------BOOL CImageManager::LoadResImage(UINT nResID, LPCTSTR lpType, Bitmap *&lpImage, HINSTANC... 阅读全文

posted @ 2011-12-30 20:17 hgy413 阅读(154) 评论(0) 推荐(0) 编辑

@synthesize和@property
摘要:@property (attributes) type name;attributes可以是 readwrite (默认的) 或是 readonly. 如果使用readonly,那么就只有getter方法. 我们也可以通过:assign, retain,copy属性来指定setter方法的工作方式 assign(默认) 简单的赋值, assign不会对新的值做retain. 如果使用对象类型的参数,同时没有启用garbage collector.我们不要使用assign retain: release旧的值,同时retain新值. 这个属性用在参数为Objective-C对象类型时. 如果 阅读全文

posted @ 2011-12-30 17:04 hgy413 阅读(126) 评论(0) 推荐(0) 编辑

NSTableView可编缉
摘要:在NSTableViewDataSource中控制着数据直接找到NSTableViewDataSource这个类,在Guide中找到"Using a Table Data Source"目录,1.numberOfRowsINTableView设置要显示的数目2.tableView:objectValueForTableColumn:row:设置行列要显示的数据(自己设定一个NSMutableArray的dataSource)3.setObjectView:object在可编缉时object就是你编缉后的内容,直接把object存到对应的dataSource相应位置中就可以了 阅读全文

posted @ 2011-12-30 15:38 hgy413 阅读(189) 评论(0) 推荐(0) 编辑

deleget
摘要:Delegate模式顾名思义,就是两个对象之间的代理关系。形象地说,即某个对象不愿意自己去干一件事,而是委托另外一个对象作为自己的代理,来做这件事,代理对象把结果返回给委托者对象。一个对象可以拥有多个代理.下面用一个例子进一步说明了这个关系,这个是 Cocoa教程里的例子:比如有一个NSWindow对象,与其代理对象间实现了一个包含叫做windowShouldClose方法的通信协议。当用户点击窗口角上的关闭按钮时,NSWindow对象向其代理对象发送windowShouldClose消息,询问是否可以关闭窗口?代理对象根据窗口的内容已经保存与否等情况,向窗口对象返回是否应该关闭的布尔值,据此 阅读全文

posted @ 2011-12-29 17:43 hgy413 阅读(129) 评论(0) 推荐(0) 编辑

赋值的三种写法
摘要:第一种: retain 然后 release:- (void)setFoo:(NSCalendarDate *)x { [x retain]; [foo release]; foo = x; }retain在release之前是非常重要的.如果你颠倒了它们的循序, 当x 和foo指向同一个对象, 而该对象的retain计数为1时. release将会把这个对象释放了. 评价: 如果是指向同一个对象, retain和release是多余的.第二种:- (void)setFoo:(NSCalendarDate *)x { if (foo != x) { [foo release]; foo = [ 阅读全文

posted @ 2011-12-29 14:05 hgy413 阅读(753) 评论(0) 推荐(0) 编辑

设置垃圾回收
摘要:xcode-project->Edit Project Settings搜索中输入gar,就看到了Objective-C Garbage Collection 阅读全文

posted @ 2011-12-29 13:40 hgy413 阅读(110) 评论(0) 推荐(0) 编辑

NSCalendarDate
摘要:+(id) calendarDate;该方法创建了当前日期和时间以及默认格式的NSCalendarDate对象.它的时区为机器设置好的时区.该方法为class method+(id)dateWithYear:(NSInteger)year month:(NSUInteger)month day.......该对象使用了参数指定的值来初始化. year 使用公元记年比如2009. month为1到12. day为1到31.hour为0到23.minute为0到59.second为0到59. (NSCalendarDate *)dateByAddingYears:(int)year months: 阅读全文

posted @ 2011-12-29 10:44 hgy413 阅读(163) 评论(0) 推荐(0) 编辑

release 和 drain
摘要:drain:In a reference-counted environment, releases and pops the receiver; in a garbage-collected environment, triggers garbage collection if the memory allocated since the last collection is greater than the current threshold.releaseDecrements the receiver’s reference count. (required)在一个garbage col 阅读全文

posted @ 2011-12-27 20:14 hgy413 阅读(121) 评论(0) 推荐(0) 编辑

iPhone/Mac Objective-C内存管理教程和原理剖析
摘要:前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。此文涉及的内存管理是针对于继承于NSObject的Class。一基本原理Objective-C的内存管理机制与.Net/Java那种全自动的垃圾回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍微加了一些自动方法。1Objective-C的对象生成于堆之上,生成之后,需要一个指针来指向它。ClassA *ob 阅读全文

posted @ 2011-12-26 23:26 hgy413 阅读(162) 评论(0) 推荐(0) 编辑

Objective-C 的 self 和 super 详解
摘要:在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject { NSString* name;}- (void) setName:(NSString*) yourName;@end@interface PersonMe:Person { NSUInteger age;}- (void) setAge:(NSUInteger) age;- (v... 阅读全文

posted @ 2011-12-26 22:22 hgy413 阅读(124) 评论(0) 推荐(0) 编辑

NSLog 和 printf区别
摘要:1.NSLog会自己加上换行符2.NSLog在Debug下会写到system.log中3.NSLog会自动加上时间和进程信息.4.NSLog支持%@去打印一个对象类型,当使用%@时,它会给对象发送消息description,所以如果你组合了一个新的类,你可以通过给自己重载description来实现打印DEBUG比如-(NSString *)description; 阅读全文

posted @ 2011-12-22 10:36 hgy413 阅读(123) 评论(0) 推荐(0) 编辑

VMware Workstation优化设置
摘要:如何优化虚拟机选择篇博文中创建好的xp操作系统,选择Edi virtual machine settings(注意,要先将虚拟XP关机,否则无法进行以下设置)设置虚拟内存大小。根据自身的硬件来设置,内存设置合适就好,不要设置过大,这样会反而降低运行速度。如:真机内存为4GB,虚拟机内存为2GB;真机内存为2GB,虚拟机为1GB。虚拟Cpu处理器设置。处理器数量设置成2个(既双核)就可以了。但一定不要超过真机的处理器数量。如果你的Cpu是近几年产品的话,大多都支持虚拟技术,便可以将“Perferred mode”设置为下图中的选项。不必要的虚拟硬件可以删除,自行决定(可不要瞎删)。如软盘Flop 阅读全文

posted @ 2011-12-20 20:53 hgy413 阅读(514) 评论(0) 推荐(0) 编辑

Qt学习10:像丝一样滑(双缓冲)
摘要:void CannonField::paintEvent(QPaintEvent *e){ // ------------------------------------- // QPaintEvent包含一个必须被刷新的窗口部件的区域 // QPainter默认只能在paintEvent里面调用 // ------------------------------------- QRect cr = cannonRect(); // -------------------------------------- // 只要有一个象素相交,就返回true。 // --------------... 阅读全文

posted @ 2011-12-18 14:10 hgy413 阅读(204) 评论(0) 推荐(0) 编辑

加载图片资源的方法
摘要:BOOL CImageManager::LoadResImage(UINT nResID, LPCTSTR lpType, Bitmap *&lpImage, HINSTANCE hInstance){ lpImage = NULL; hInstance = (NULL == hInstance) ? ::AfxGetResourceHandle() : hInstance; // If bmp,use system load. if (RT_BITMAP == lpType) { HBITMAP hBmp = ::LoadBitmap(h... 阅读全文

posted @ 2011-12-14 17:18 hgy413 阅读(211) 评论(0) 推荐(0) 编辑

DirectUI代码分析1:
摘要:今天学习了DirectUI最初的版本http://www.viksoe.dk/code/windowless1.htm,尝试着自己把它提取出来,写成一个更简单的DEMO,所以做一个小笔记:主程序是基于CFrameWindowWnd创建的1.CWindowWnd:是所有窗口的基类,它包含了RegisterWindowClass用于注册窗口,在注册中设置窗口过程函数__WndProcCreate中调用CreateWindowEx,CreateWindowEx最后一个参数传入this,CFrameWindowWnd基于CWindowWnd注册创建,下面具体说下这个窗口的实现:1.RegisterWi 阅读全文

posted @ 2011-12-13 20:31 hgy413 阅读(186) 评论(0) 推荐(0) 编辑

QT学习9:绘制函数
摘要:void CannonField::paintEvent(QPaintEvent *){ // ------------------------------------- // QPaintEvent包含一个必须被刷新的窗口部件的区域 // QPainter默认只能在paintEvent里面调用 // ------------------------------------- //QString s = "Angle = " + QString::number(ang); //QPainter p(this); //p.drawText(200, 200, s); QPai 阅读全文

posted @ 2011-12-13 10:42 hgy413 阅读(747) 评论(0) 推荐(0) 编辑

QT学习8:准备战斗
摘要:cannon.h:#ifndef CANNONFIELD_H_#define CANNONFIELD_H_#include class CannonField : public QWidget{ Q_OBJECTpublic: CannonField(QWidget *parent=NULL, const char *name=NULL); int angle() const {return ang;} QSizePolicy sizePolicy() const; public slots: void setAngle(int degrees);signals: void angleCh.. 阅读全文

posted @ 2011-12-12 21:06 hgy413 阅读(172) 评论(0) 推荐(0) 编辑

QT学习7:1个事物领导另一个
摘要:LCDRange.h #ifndef LCDRANGE_H_#define LCDRANGE_H_#include class QSlider;class LCDRange:public QWidget{ Q_OBJECTpublic: LCDRange(QWidget* parent=NULL, const char *name=NULL); int value() const;public slots: void setValue(int); signals://信号只声明,不能定义. void valueChanged(int); private: QSlider *slid... 阅读全文

posted @ 2011-12-12 16:02 hgy413 阅读(133) 评论(0) 推荐(0) 编辑

QT学习6:组装丰富的积木!
摘要:#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap#include //QT中的字体#include //顾名思义,像LCD一样显示数字的widget吧!#include //滑动条#include //竖直布局#include //网格布局class LCDRange:public QWidget{public: LCDRange(QWidget* parent=0, const char *name=0);} 阅读全文

posted @ 2011-12-11 19:11 hgy413 阅读(352) 评论(0) 推荐(0) 编辑

lib和dll
摘要:lib编译用的,dll运行用的,也就是编译好的exe,你可以把lib删了,无论这个lib是静态lib,还是跟着dll一起生成的,但dll就必须放起去了。 阅读全文

posted @ 2011-12-11 18:06 hgy413 阅读(102) 评论(0) 推荐(0) 编辑

QT学习5:组装积木
摘要:#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap#include //QT中的字体#include //顾名思义,像LCD一样显示数字的widget吧!#include //滑动条#include class MyWidget :public QWidget{public: MyWidget(QWidget* parent=0, const char *name=0);};MyWidget::MyWidget( 阅读全文

posted @ 2011-12-11 12:18 hgy413 阅读(198) 评论(0) 推荐(0) 编辑

QT学习4:使用窗口部件
摘要:#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap#include //QT中的字体class MyWidget :public QWidget{public: MyWidget(QWidget* parent=0, const char *name=0);};MyWidget::MyWidget(QWidget* parent, const char *name):QWidget(parent, name){ 阅读全文

posted @ 2011-12-11 10:57 hgy413 阅读(240) 评论(0) 推荐(0) 编辑

QT学习3:QT4中调用QT3的原有类
摘要:#define QT3_SUPPORT#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap#include //QT中的字体#include //布局类,QVBox把它的子窗口排成垂直的行,QVbox是QT3的,要使用它//必须在建工程时选上Qt3 Support library,命名为Q3XXXint main(int argc, char *argv[]){ QApplication a(argc, argv) 阅读全文

posted @ 2011-12-10 15:52 hgy413 阅读(412) 评论(0) 推荐(0) 编辑

QT学习2:QFont和退出
摘要:#define QT3_SUPPORT#include "hello.h"#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap#include //QT中的字体int main(int argc, char *argv[]){ QApplication a(argc, argv);//argc是命令行变量的数量,argv是数组,C、C++特征 QPushButton quit("Qui 阅读全文

posted @ 2011-12-10 15:07 hgy413 阅读(355) 评论(0) 推荐(0) 编辑

QT学习1 hello程序
摘要:#define QT3_SUPPORT#include "hello.h"#include //在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种//应用程序的广泛资源,比如默认字体和光标#include //经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmapint main(int argc, char *argv[]){ QApplication a(argc, argv);//argc是命令行变量的数量,argv是数组,C、C++特征 QPushButton hello("hello Qt");//C 阅读全文

posted @ 2011-12-10 14:21 hgy413 阅读(158) 评论(0) 推荐(0) 编辑

打印断言函数
摘要:在写directUi时,用到一些函数断言,记录下: assert(a != 0); //assert.h,此函数会将错误信息显示在命令行中,在命令行中显示出错的语句和行数 _ASSERTE(a != 0); //crtdbg.h,此宏会显示出在此宏中的语句 _ASSERT(a != 0); //crtdbg.h,此宏不会显示在此宏中的语句,而只是显示出错的行数这样写:#ifdef _DEBUG#define TRACE __Trace#define TRACEMSG __TraceMsg#else#define TRACE#define TRACEMSG _T("")#en 阅读全文

posted @ 2011-12-08 21:56 hgy413 阅读(392) 评论(0) 推荐(0) 编辑

RAS详解
摘要:1.什么叫RAS?答:微软的所有Wi n d o w s平台中都有RAS客户机,它允许我们将自己的计算机与另一个地方的远程计算机(其特色是一个远程访问服务器组件)相连,一般情况下, RAS客户机利用连接了电话线的一个调制解调器,通过拨号的方式呼叫远程计算机。因此,有时, RAS客户机也称作“拨号联网(DUN)客户机”。服务器这方面,必须有一项等候DUN连接的服务,RAS客户机和服务器之间的连接建立之后,网络协议堆栈(与所用的分帧协议有关)就通过这个RAS连接,与远程计算机通信,就象通过LAN连接的一样。当然,如今,许多调制解调器的数据通信速率明显比直接的LAN连接慢。RAS连接通过电话簿条目中 阅读全文

posted @ 2011-12-07 20:30 hgy413 阅读(1051) 评论(0) 推荐(0) 编辑

注册表基本知识
摘要:1.如何打开注册表?答:运行中输入regedit.exe 无权限限制2.注册表数据库文件的存放位置?答:2000/XP注册表文件按功能来分,由系统注册表文件和用户注册表文件两类组成的系统设置和缺省用户配置数据存放在系统/系统文件夹/SYSTEM32/CONFIG文件夹下的6个文件,DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中,而用户的配置信息存放在系统所在磁盘的/Documents and Setting/文件夹,包括ntuser.dat ntuser.ini ntuser.dat.log 3.上面说了SMA文件:那么SMA是什么?答:C:\WI 阅读全文

posted @ 2011-12-07 08:59 hgy413 阅读(554) 评论(0) 推荐(0) 编辑

写入注册表实现自启动
摘要:void XXXX::OnBnClickedAutorunCheckbtn(){ //----------------------------------------------- // 通过HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Run // 加入一个自定义键值,并设置数据为当前exe执行路径即可实现开机自动运行 // 清空键值,就可以去掉开机运行,当然也可以删除这个值. // // LONG RegOpenKeyEx(HKEY hKey, // 需要打开的主键的名称 // ... 阅读全文

posted @ 2011-12-06 12:10 hgy413 阅读(230) 评论(0) 推荐(0) 编辑

DisableThreadLibraryCalls
摘要:DisableThreadLibraryCalls 的MSDN解释是这样的:The DisableThreadLibraryCalls function lets a DLL disable the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notification calls.就是不接收这两个消息,his can be a useful optimization for multithreaded applications that have many DLLs, frequently create and delete threads, and who 阅读全文

posted @ 2011-12-02 12:45 hgy413 阅读(444) 评论(0) 推荐(0) 编辑

const
摘要:1.函数名前加const对于内置类型,如int int fun()const int fun()int const fun()一个东东.,没区别对于自定义类型,或指针,如classA, int *pconst int* fun()int* const fun()意思都是返回的int指针是const的,所以 int a = *fun();//Ok int *b = fun();//挂掉2.函数名后加const这个直接看MSDN解释就清楚了,To declare a constant member function, place the const keyword after the cl... 阅读全文

posted @ 2011-12-01 17:07 hgy413 阅读(137) 评论(0) 推荐(0) 编辑

导航

统计

点击右上角即可分享
微信分享提示