//----按Id查找窗口中的子窗口(控件)----------------------------------------------- //描述: 略. //参数:hwnd:窗口句柄 // Id: 需要查找的子窗口(控件)Id. //返回:查找到的子窗口(控件)句柄. //------------------------------------------------------------------------------ HWND GetDlgItem(HWND hwnd,int Id) { if(HWND_Lock(hwnd)) { hwnd =_GetDlgItem(hwnd,Id); HWND_Unlock(hwnd); } return hwnd; }
int DlgDirSelectComboBoxExW( HWND hwndDlg, LPWSTR pwszOut, int cchOut, int idComboBox) { BOOL fRet; TL tlpwndComboBox; TL tlpwndList; PWND pwndDlg; PWND pwndComboBox; PCBOX pcbox; pwndDlg = ValidateHwnd(hwndDlg); if (pwndDlg == NULL) return FALSE; pwndComboBox = _GetDlgItem(pwndDlg, idComboBox); if (pwndComboBox == NULL) { RIPERR0(ERROR_CONTROL_ID_NOT_FOUND, RIP_VERBOSE, ""); return 0; } pcbox = ((PCOMBOWND)pwndComboBox)->pcbox; if (pcbox == NULL) { RIPERR0(ERROR_WINDOW_NOT_COMBOBOX, RIP_VERBOSE, ""); return 0; } ThreadLockAlways(pwndComboBox, &tlpwndComboBox); ThreadLock(pcbox->spwndList, &tlpwndList); fRet = xxxDlgDirSelectHelper(pwndComboBox, pwszOut, cchOut, pcbox->spwndList); ThreadUnlock(&tlpwndList); ThreadUnlock(&tlpwndComboBox); return fRet; }