• SetWindowLong 和SetClassLong区别


    首先看一下msdn是怎样定义它们的吧,可不要搞错啊:

    The SetWindowLong function changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory.

    Note  This function has been superseded by the SetWindowLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Microsoft Windows, use the SetWindowLongPtr function.

    Syntax

    LONG SetWindowLong(          HWND hWnd,
        int nIndex,
        LONG dwNewLong
    );上面是对SetWindowLong的说明(定义),注意红色字体。

    下面是SetClassLong的说明:The SetClassLong function replaces the specified 32-bit (long) value at the specified offset into the extra class memory or the WNDCLASSEX structure for the class to which the specified window belongs. Note  This function has been superseded by the SetClassLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Microsoft Windows, use SetClassLongPtr. SyntaxDWORD SetClassLong(          HWND hWnd,
        int nIndex,
        LONG dwNewLong
    );注意红色字体表示。 这里要注意the specified window,这里说的是具体的某个窗口,而 the class to which the specified window belongs指的是具体某个窗口归属的类。也就是说SetWindowLong是对具体的窗口的行为或样式等(such as window proc and window style)进行修改。而SetClassLong是对窗口归属的类的行为或样式等进行修改设置。同时注意它们的返回情况,这也很重要,这里就不多说了。

  • 相关阅读:
    C语言面试题分类->宏定义
    c语言位运算
    C语言一个程序的存储空间
    收藏的链接-English
    侧滑关闭Activity的解决方案——SwipeBackLayout
    实现ViewPager的联动效果
    由Toolbar造成的ListView最后一项显示不全
    收藏的链接-Stub
    收藏的链接-Git
    收藏的链接
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/1965671.html
Copyright © 2020-2023  润新知