在设计窗体时,有时需要动态的显示或者隐藏窗体标题栏,可以通过API函数GetWindowLong、SetWindowLong和SetWindowPos来实现。
GetWindowLong函数能够获得指定窗口的信息,其语法结构为:
LONG WINAPI GetWindowLong( _In_ HWND hWnd, _In_ int nIndex ); |
参数说明:
Ø hWnd:指定窗口的句柄。
Ø nIndex:需要获得的信息的类型。
其中,nIndex的取值类型如下表所示:
值 |
描述 |
GWL_EXSTYLE |
得到扩展的窗口风格 |
GWL_HINSTANCE |
得到应用程序运行实例的句柄 |
GWL_HWNDPARENT |
得到父窗口的句柄 |
GWL_ID |
得到窗口的标识符 |
GWL_STYLE |
得到窗口风格 |
GWL_USERDATA |
得到和窗口相关联的32位的值(每一个窗口都有一个有意留给创建窗口的应用程序是用的32位的值) |
GWL_WNDPROC |
得到窗口回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用 |
当hWnd标识一个对话框时可以使用下面的值:
值 |
描述 |
DWL_DLGPROC |
得到对话框回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用 |
DWL_MSGRESULT |
得到对话框回调函数中消息处理过程的返回值 |
DWL_USER |
得到额外的应用程序私有信息,如一些句柄和指针等 |
Ø 返回值:成功时,返回一个请求的32位的值;失败时,返回0,可以使用GetLastError来取得错误信息。
SetWindowLong函数改变指定窗口的属性。该函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。其原型为:
LONG WINAPI SetWindowLong( _In_ HWND hWnd, _In_ int |