|
Прикрепить форму
|
|||
---|---|---|---|
#18+
Здравствуйте! Подскажите пожалуйста как сделать так, чтобы моя форма на VB (например Form1.exe) подвешивалась к программе Word или к-л другой программе (например к нижнему правому углу) и соответственно при любых перемещениях окна Word форма тоже должна перемещаться. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2003, 13:19 |
|
Прикрепить форму
|
|||
---|---|---|---|
#18+
Готовый код не дам ибо такими проблемами не был обременен. Тебе прийдется использовать Win32 API для поиска hwnd нужного тебе окна (самого Word или конкретного окна документа), далее отслеживать по таймеру или через те же API место расположения границ окна и перемещать свою форму куда нужно. На сайтах по VB есть куча примеров для работы с окнами и границами. Объединишь - получишь что тебе нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2003, 13:38 |
|
Прикрепить форму
|
|||
---|---|---|---|
#18+
Спасибо конечно, но что то у меня всё равно ничего не получается. Я просмотрел несколько сайтов и единственное что мне удалось это прикрепить одну форму к другой, но прикрепить форму к Word-у не удалось!!! Form1 к form2 я прикрепил следующим образом: Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Const WM_MOVE = &H3 Public Const GWL_WNDPROC = -4 Public glPrevWndProc As Long Public Function pMyWindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If uMsg = WM_MOVE And Form1.WindowState = vbNormal Then Form2.Move Form1.Left - 1000, Form1.Top - 2500 End If pMyWindowProc = CallWindowProc(glPrevWndProc, hw, uMsg, wParam, lParam) End Function Private Sub Form_Load() Form2.Show Form1.Show glPrevWndProc = SetWindowLong(Form1.hWnd, GWL_WNDPROC, AddressOf pMyWindowProc) End Sub Но мне то нужно форму прикрепить не к другой форме, а Word-у!!! Затем я нашел hwnd окна Word следующим способом: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Dim FFF As Long FFF = FindWindow(OpusApp, vbNullString) А ввиду того что VB я владею далеко не в совершенстве, то на этом у меня всё заглохло!!! Подскажите что делать дальше (а лучше пришлите код, если не трудно). HELP Me Please!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 09:56 |
|
Прикрепить форму
|
|||
---|---|---|---|
#18+
Окно Ворда ты нашел (FFF = FindWindow(OpusApp, vbNullString) ), теперь ищи API функцию, котрая возвращет информацию об этм окне (место расположения, щирина, высота...) Делай соответсвующие выводы/расчеты и перемещай свою форму куда нужно. Твой первый приведенный пример принимет в качестве парaметра hwnd формы, так и передай hwnd Ворда - FFF). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 10:47 |
|
|
start [/forum/topic.php?fid=60&msg=32153070&tid=2171255]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 523ms |
0 / 0 |