1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
HWND GetHWndEditFromDlg(const char *szDlgName,int nFirstEdit=1)
{
HWND hWnd=::FindWindow(NULL,szDlgName);
char szClassName[100];
bool bFirst=true;
int nCount=0;
while(hWnd)
{
if(bFirst) hWnd = ::GetWindow(hWnd, GW_CHILD);
else hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);
bFirst=false;
if(hWnd)
{
::GetClassName(hWnd,szClassName,sizeof(szClassName));
if(!strcmp(szClassName,"Edit"))
{
nCount++;
if(nCount==nFirstEdit) return hWnd;
}
}
}
return NULL;
}
// utilisation
HWND hWndEdit=GetHWndEditFromDlg("Dialogue");
if(hWndEdit)
{
// postmessage etc...
} |