Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Изменение свойств окна


Автор: valex13 8.4.2005, 07:24
Господа!
Я хочу изменить свойства окна. Окно запущено из чужого приложения. hWND окна я определяю по заголовку, а вот изменить стиль не удается, однако, если указать заголовок своего окна - то пожалуйста. Один и тот же код. В чем может быть причина?
Код

Declare Function apiGetWindowLong Lib "user32" Alias _
         "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As _
         Long) As Long
         
Declare Function apiSetWindowLong Lib "user32" Alias _
      "SetWindowLongA" (ByVal hwnd As Long, _
      ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


         L = apiGetWindowLong(hWnds(r), GWL_STYLE)
         L = WS_CAPTION Or WS_CHILDWINDOW Or WS_VISIBLE Or WS_SYSMENU Or WS_THICKFRAME Or             WS_CLIPSIBLINGS Or WS_OVERLAPPED
         L = apiSetWindowLong(hWnds(r), GWL_STYLE, L)

Автор: Exception 10.4.2005, 12:16
Ты ему ставишь абсолютно новый стиль? Точно не знаю, может надо
Код

L= L or 'все твои стили

Автор: Exception 11.4.2005, 17:10
Что за hWnds®? Полный код в студию smile

Автор: ~FoX~ 12.4.2005, 09:14
Попробуй
Код

SendMessage(hWnds(r), GWL_STYLE, L)

Только параметры могут по другому передоваться, порверить не могу Format c: smile

Автор: valex13 12.4.2005, 12:50
Код

Static hWnds() As Integer


~FoX~ Я так пробовал

Код

         'L = L And Not (WS_MAXIMIZEBOX)
         'L = L And Not (WS_MINIMIZEBOX)
         Retval = SendMessage(hWnds(r), GWL_STYLE, L, 0)

Не выходит.

smile

Автор: valex13 12.4.2005, 13:05
Но самое что удивительное. Если из приложения создать дочернее окно и попробовать изменить ее свойства, то меняется!

Автор: Exception 12.4.2005, 15:25
Может некоторые стили только для дочерних окон?

Автор: valex13 13.4.2005, 07:42
А я пытаюсь изменить стиль дочернего окна , чужой программы.

Автор: ~FoX~ 13.4.2005, 08:06
valex13
А что за программа (которую меняешь) и что за форма?

Автор: Exception 14.4.2005, 17:38
Может оно такого класса, для кот. один из твоих стилей не существует?

Автор: valex13 15.4.2005, 06:59
А я прежде чем менять посмотрел стили окна Spy++ утилитой. И создал свое дочернее окно с такими же параметрами, а потом изменял сначало свое окно - изменилось. Потом окно другой программы. Нет. Не меняет. Более того. Я запустил две свои программы одновременно в каждой программе имеется дочернее окно. В одной из программе указал менять свойства. И именно в той программе, откуда я указывал изменилось дочернее окно, а должно было в обеих программах измениться. Может быть вообще не возможно изменить слиль окна чужо программы???

Автор: Exception 15.4.2005, 11:25
Цитата(valex13 @ 15.4.2005, 07:59)
Может быть вообще не возможно изменить слиль окна чужо программы???

возможно... ведь это окно принадлежит другому процессу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)