Windows平台下每个窗体都有一个ID,窗体创建的时候被设置,主要用来标识子窗体,对不同的窗体,其子窗体的ID可以相同。但同一窗体的不同子窗体必须不同。否则
API如何运行正确:
HWND GetDlgItem( HWND hDlg, int nIDDlgItem);
nIDDlgItem: 子窗体的ID
由该API也可以看出,由窗体的ID可得到窗体的句柄,当然还需要其父窗体的句柄作为参数,所以可以进程内不唯一。
标示为红色的参数即为窗体的ID。
hwndChild[x][y]=CreateWindow(ChildClassName,buffer,WS_CHILDWINDOW|WS_VISIBLE,0,0,0,0,hwnd,(HMENU)(y<<8|x),(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),NULL);
所以在后面获取X和Y需要
x=idFocus&0xff;
y=(idFocus>>8);
不得不说这样设置多个子窗体Id是很聪明的作法!!!