Windoows窗口程序四
子窗口的创建 1.创建时要设置父窗口句柄 2.创建风格要增加WS_CHILD|WS_VISIBLE HWND CreateChild(LPSTR lpClassName,LPSTR lpWndName,HWND hParent) { return CreateWindowEx(0,lpClassName,lpWndName ,WS_CHILD|WS_VISIBLE|WS_OVERLAPPEDWINDOW, 100,100,200,300,hParent,NULL,g_hInstance,NULL); }
//改变窗口位置大小 BOOL WINAPI MoveWindow( HWND hWnd,//窗口句柄--CreateWindow的返回值 int X,//横坐标 int Y,//纵坐标 int nWidth,//宽 int nHeight,//高 BOOL bRepaint//重绘标识(true表示擦除原来绘制的窗口,flase表示不擦除原来绘制的窗口) );
窗口类和窗口的附加数据(RegisterClassEx类) int cbClsExtra;//窗口类的附加数据缓冲区的大小(推荐4的整数倍) int cbWndExtra;//窗口的附加数据缓冲区的大小(推荐4的整数倍) 可以提供窗口类和窗口存放自己的数据的空间
cbClsExtra属性的读写函数 DWORD SetClassLong( HWND hWnd,//窗口句柄 int nIndex,//字节索引号(索引号以字节为单位,0表示从第0个字节开始存放数据) LONG dwNewLong//存入的数据(注意数据是4个字节插入的,索引应该每次后移4个字节) ); DWORD WINAPI GetClassLong( HWND hWnd,//窗口句柄 int nIndex//字节索引号 );//返回值接收读取的数据
cbWndExtra属性的读写函数 LONG WINAPI SetWindowLong( HWND hWnd,//窗口句柄 int nIndex,//字节索引号 LONG dwNewLong//存入的数据 ); LONG WINAPI GetWindowLong( _In_ HWND hWnd,//窗口句柄 _In_ int nIndex//字节索引号 );
窗口类附加数据缓冲区是所有基于该窗口类创建的窗口共享的缓冲区(相当于类的静态成员)
窗口附加数据缓冲区是窗口自己私有缓冲区(相当于类普通成员)