Узнать координаты контрола на окне

Тема в разделе "WASM.WIN32", создана пользователем CodeGrinder, 16 янв 2009.

  1. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Нужно сабж. Есть простой метод? А то GetWindowRect дает экранные координаты, а надо относительно родительского она. GetClientRect дает нули..

    Заранее благодарю!)
     
  2. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Код (Text):
    1. void GetCtlPos (HWND hParent, HWND hCtl)
    2. {
    3.    RECT rc1, rc2;
    4.    int ctlX, ctlY;
    5.  
    6.    GetWindowRect(hParent, &rc1);
    7.    GetWindowRect(hCtl, &rc2);
    8.    ctlX = rc1.left-rc2.left;
    9.    ctlY = rc1.top-rc2.top;
    10. }
     
  3. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Я думал есть что-то более человеческое!))
     
  4. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    А по вашему это не человеческое?
     
  5. Gnil

    Gnil New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    41
    ScreenToClient :)
     
  6. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Нужно учитывать размер заголовка окна!)
     
  7. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Спасибо! Как раз то, что мне нужно! :)
     
  8. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Код (Text):
    1. BOOL AdjustWindowRectEx(
    2.     LPRECT lpRect,  // pointer to client-rectangle structure
    3.     DWORD dwStyle,  // window styles
    4.     BOOL bMenu, // menu-present flag
    5.     DWORD dwExStyle     // extended style
    6.    );