Показать сообщение отдельно

  #30  
Старый 05.07.2008, 20:38
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
С нами: 9396093

Репутация: 60
По умолчанию

ZirroCool

Тебе нужно получить хэдл окна чекбокса, для этого перебираешь все дочерние окна главной формы функцией EnumChildWindows(hMain, EnumChildProc, 0);.
hMain - хэдл окна главной формы, его получаешь функией FindWindow(0, "FormTitle").
EnumChildProc - функция перебора дочерних окон. Возвращает 1 для продолжения перебора окон, 0 для прекращения. Первый параметр - хэдл очередного дочернего окна.

Код:
BOOL CALLBACK EnumChildProc(HWND hwnd , LPARAM lParam)  
{      
    char szWindowText[255];           
    
    // Получаем заголовок окна             
    GetWindowText(hwnd, szWindowText, 255);
  
    // Сравниваем с нашим, если нашли, то ставим галочку и останавливаем перебор
    if(!lstrcmp(szWindowText, "CheckBox1")) {     
        SendMessage(hwnd, BM_SETCHECK, 1, 0); 
        return 0;      
    }         
    return 1;  
} 
  
BOOL WINAPI ProcessControl()  
{     
    HWND hMain;            

    if(!(hMain = FindWindow(0, "FormTitle"))) {
        return 0;      
    }       
  
    EnumChildWindows(hMain, EnumChildProc, 0);             
    return 1;  
}
Таким образом можно искать любое окно на форме.

Последний раз редактировалось SlyBit; 06.07.2008 в 03:50..
 
Ответить с цитированием