typedef char Str
此处定义一个char的别名Str,以后可以用Str定义变量,如 Str cName是定义一个char变量;
typedef char *pStr;
这里因为 *pStr对应char,所以pStr对应char*
所以pStr pName是定义了一个char指针的变量
不知道上述理解是否正确。
#define pStr char* 在展开是只是简单的用char* 替换pStr
而typedef char *pStr则是为char* 取了一个新名字pStr
所以用法上还是存在区别的,用typedef好一点
char* p1和const char* p2是定义了两个指向char对象的指针,const限定的数据对象的类型是char,p1,p2两个指针其实都没有限定符,只是它们指向的对象*p1,*p2有限定符,一个指向char,一个指向const char而已。所以p2++是正确的,(*p2)++是错误的
但是typedef char* pStr;
const pStr p3;中
p3++是错误的!!!因为在typedef char* pStr;中pStr本身就是一种“新的”数据类型
const pStr p3;是定义了一个数据类型为pStr的常量对象,所以p3是不能改变的!!!
句柄是指向对象(结构体)的一个指针,还是就是这个对象的地址??估计是前者!
不同的对象需要相对应类型的句柄,所以句柄在C中的作用就是对象指针在C++中的作用。。
一是可以区分对象类型,二是可以引用这个对象
用C代码禁用QQ登录窗口的输入框:只需要在程序在调用下面这个函数就可以了。
void kk(){
HWND hCurWindow,HC,HE;//定义三个窗口句柄变量,hCurWindow用于存放QQ用户登陆窗口的句柄,HC、HE分别存放//号码框和密码框的句柄。
if((hCurWindow= FindWindow(NULL,L"QQ2009 正式版"))!=0(hCurWindow=FindWindow(NULL,L"QQ用户登录"))!=0)
{//很明显,调用FindWindow()函数去获得QQ登陆窗口的句柄
//String str;
//str.sprintf("0x%x",hCurWindow);
}
TCHAR wClassName[255];//类名变量
HC=GetWindow(hCurWindow, GW_CHILD);//得到号码框的句柄
HE=GetWindow(HC, GW_HWNDNEXT);//接着得到密码框的句柄
GetClassName(HE, wClassName, sizeof(wClassName));//得到类名
GetClassName(HC, wClassName, sizeof(wClassName));//得到类名
EnableWindow(HE,false);//使窗口失效
EnableWindow(HC,false);//使窗口失效
}
如果加上下面这句,那么会自动关掉QQ登录窗口
SendMessage(hCurWindow,WM_CLOSE,0,0);
加下面一句可以隐藏窗口
ShowWindow(hCurWindow,SW_HIDE);
阅读(1244) | 评论(0) | 转发(0) |