《Windows API巡礼》のGetWindowLong和SetWindowLong函数

SetWindowLong函数用来改变指定窗口的属性,函数同时在窗口的额外内存中设置32位的偏移量值:

LONG WINAPI SetWindowLong(

  __in  HWND hWnd, //指定窗口的句柄,或者间接地,窗口所属的类

  __in  int nIndex, //指定要设置的属性值的偏移地址

  __in  LONG dwNewLong //指定设置的新值

);

 

参数nIndex的取值如下:

GWL_EXSTYLE       //设置一个新的扩展窗口风格

GWL_HINSTANCE //设置一个新的应用程序实例句柄

GWL_ID //为窗口设置一个新的标识

GWL_STYLE   //设置一个新的窗口风格

GWL_USERDATA  //设置与窗口相关的32位值

GWL_WNDPROC          //设置一个新的窗口过程

 

hWnd参数指定的是一个对话框时,那么nIndex参数还可以取如下值:

DWL_DLGPROC //设置新的对话框过程

DWL_MSGRESULT        //设置在对话框过程中处理的消息的返回值

DWL_USER    //设置新的额外信息,该信息仅为应用程序所有,例如句柄或指针

 

函数调用成功,setWindowLong函数将返回先前为窗口指定的32位整型值。也就是说,如果为指定窗口设定一个新的窗口过程,则该函数将返回先前为该窗口类指定的窗口过程的地址。

 

实例代码见:Windows核心程》の窗口程的使http://blog.csdn.net/ACE1985/archive/2010/08/28/5846524.aspx

 

GetWindowLong函数用来获取指定窗口的属性信息。函数同时在窗口的额外内存中获取32位的偏移量值:

LONG WINAPI GetWindowLong(

  __in  HWND hWnd, //指定窗口的句柄,或者间接地,窗口所属的类

  __in  int nIndex //指定要获取的属性值的偏移地址

);

参数nIndex取值同SetWindowLong相应参数。

函数调用成功,返回指定的值;失败时,返回0。如果前面没有调用SetWindowLong函数,则GetWindowLong函数返回的额外窗口或类内存中的值是0

posted on 2010-08-28 20:53  android开发实例  阅读(404)  评论(0编辑  收藏  举报

导航