Как создать child window, чтобы оно могло получать фокус
От: daniar  
Дата: 10.01.03 11:29
Оценка:
Создаю child-window (WS_CHILD; не MDI), но не могу сделать так, чтобы его caption мог выделяться?
Re: Как создать child window, чтобы оно могло получать фокус
От: _Dinosaur Россия  
Дата: 10.01.03 11:42
Оценка:
Здравствуйте, daniar, Вы писали:

D>Создаю child-window (WS_CHILD; не MDI), но не могу сделать так, чтобы его caption мог выделяться?


Может быть
WS_TABSTOP | WS_GROUP
Завидую людям, которые могут себе позволить никуда не спешить.
Re[2]: Как создать child window, чтобы оно могло получать фо
От: daniar  
Дата: 10.01.03 12:10
Оценка:
Пробовал, не помогает
Re[3]: Как создать child window, чтобы оно могло получать фо
От: _Dinosaur Россия  
Дата: 10.01.03 12:58
Оценка:
Здравствуйте, daniar, Вы писали:

D>Пробовал, не помогает


Хотелось бы посмотреть код с
RegisterClassEx
CreateWindowEx
для родительского и дочернего окон
Завидую людям, которые могут себе позволить никуда не спешить.
Re[4]: Как создать child window, чтобы оно могло получать фо
От: daniar  
Дата: 10.01.03 13:32
Оценка:
Создание дочернего окна производится в DLL (C++, WinAPI)
Из главной программы(Delphi) передается HWND этой главной программы
//------------- создание дочернего окна --------------------------
 WNDCLASS wndClass = { 0, WndProc, 0, 0, hInstance,
                      LoadIcon( hInstDLL, MAKEINTRESOURCE(IDI_MAIN_ICON) ),
                      LoadCursor( hInstance, IDC_ARROW ),
                      (HBRUSH)GetStockObject(WHITE_BRUSH),
                      NULL, _T("D3D Child Window") };
 RegisterClass( &wndClass );
// Set the window's initial style
  m_dwWindowStyle = WS_CHILD|WS_MINIMIZEBOX|WS_CAPTION|WS_THICKFRAME| WS_SYSMENU|
        WS_VISIBLE| WS_TABSTOP | WS_GROUP ;
 RECT rc;
 GetClientRect( m_hWnd, &rc );
// Create the render window
// m_hWnd - пока содержит HWND родителя, ниже он изменится
// но это не играет роли
 m_hWnd = CreateWindow( _T("D3D Child Window"), m_strWindowTitle, m_dwWindowStyle,
                        CW_USEDEFAULT, CW_USEDEFAULT,
                        (rc.right-rc.left), (rc.bottom-rc.top), m_hWnd,
                        (HMENU)g_lChildNumber++,//LoadMenu( hInstDLL, MAKEINTRESOURCE(IDR_MENU) ),
                         hInstance, 0L );
//----------------------------------------------------------------------

Господа! пользуйтесь раскраской!!! H_D
Re[5]: Как создать child window, чтобы оно могло получать фо
От: Vis Украина  
Дата: 10.01.03 15:08
Оценка:
Здравствуйте, daniar, Вы писали:

D>Создание дочернего окна производится в DLL (C++, WinAPI)

D>Из главной программы(Delphi) передается HWND этой главной программы
// КОД
D>//----------------------------------------------------------------------

Как вариант можешь в обработке сообщения WM_SETFOCUS послать вызвать
DefWindowProc(hWnd,AM_ACTIVATE,WA_ACTIVE,hWnd);
Re[6]: Как создать child window, чтобы оно могло получать фо
От: _Dinosaur Россия  
Дата: 10.01.03 16:21
Оценка:
Здравствуйте, Vis, Вы писали:

Vis>Здравствуйте, daniar, Вы писали:


D>>Создание дочернего окна производится в DLL (C++, WinAPI)

D>>Из главной программы(Delphi) передается HWND этой главной программы
Vis>// КОД
D>>//----------------------------------------------------------------------

Vis>Как вариант можешь в обработке сообщения WM_SETFOCUS послать вызвать

Vis>DefWindowProc(hWnd,AM_ACTIVATE,WA_ACTIVE,hWnd);

Не срабатывает.
По всей видимости надо использовать MDI,
либо отказаться от использования дочернего окна, как контрола с заголовком
и использовать контролы типа STATIC и т.п.
Завидую людям, которые могут себе позволить никуда не спешить.
Re: Как создать child window, чтобы оно могло получать фокус
От: Hacker_Delphi Россия  
Дата: 11.01.03 00:12
Оценка:
Здравствуйте, daniar, Вы писали:

D>Создаю child-window (WS_CHILD; не MDI), но не могу сделать так, чтобы его caption мог выделяться?

Я в свое время угробил на это достаточно много времени — так и не победил... могеш, конечно, перекрыть следующие события:
Enigma-Beyond the invisible
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.