这个《windows程序设计》书中的的代码
看到有网友说是给变量cbWndExtra置0(这个0应该是第三个参数0吧),但是我不明白的是第二个参数0代表什么意思?
查了下SetWindowLong函数:
GWL_USERDATA(-21):设置与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。当hWnd参数标识了一个对话框时,也可使用:
DWL_MSGRESULT(0):设置在对话框过程中处理的消息的返回值到底是怎么回事?求各位大侠帮帮忙了!!
看到有网友说是给变量cbWndExtra置0(这个0应该是第三个参数0吧),但是我不明白的是第二个参数0代表什么意思?
查了下SetWindowLong函数:
GWL_USERDATA(-21):设置与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。当hWnd参数标识了一个对话框时,也可使用:
DWL_MSGRESULT(0):设置在对话框过程中处理的消息的返回值到底是怎么回事?求各位大侠帮帮忙了!!
0, //只有当RegisterClassEx时将wndClass.cbWndExtra(窗口附加字节)设置为4(sizeof(LONG)以上才会有效
0); //定义窗口附加字节存储的LONG值, 可用于存储窗口类实例的指针等数据便于在其他场合(如回调函数)使用
假设wndClass.cbWndExtra=16; 这时系统分配了一块16字节的空间供窗口使用.
你可以将它看作是BYTE bData[16];或LONG nData[4];SetWindowLong中的第二个0指的是 bData[0], 一次取4个字节SetWindowLong(hWnd, 0, 0); 相当于设置nData[0]=0;