![]() |
|
Модераторы: Akina |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Возвращает (изменяет) в переданную тобой структуру POINT.
|
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
я делаю вот так
и при этом хочу, чтобы окно занимало две трети экрана |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
pa2.x = 2 * ((Screen.Width / Screen.TwipsPerPixelX) / 3)
И не нужно никаких ClientToScreen Это сообщение отредактировал(а) Naghual - 15.2.2005, 14:37 -------------------- Я желаю всем Счастья! |
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
не работает
|
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Ну так и ЧТО не работает?
-------------------- Я желаю всем Счастья! |
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
ну не в том месте окно открывается.
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
А ты проверь Pointapi. Может данные изменились. Функция берет твои коорд. а в той же переменной возвр screen
|
|||
|
||||
| Гость___Sergey__ |
|
|||
|
Unregistered |
Когда я двигал оконца, то использовал вместо SetWindowPos,
MoveWindow. С ней получалось. |
|||
|
||||
| Exception |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Простите 3ю страницу не заметил Добавлено @ 18:51
Вполне логично. В SetWPos есть парам. hwndInsertAfter а в moveWindow его нет. А нам он и не нужен |
||||
|
|||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
слушайте, простите, ну почему у меня не работает....
Option Explicit Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Public Declare Function EnumThreadWindows Lib "user32" (ByVal dwThreadId As Long, ByVal lpfn As Long, ByVal lParam As _ Long) As Long Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _ ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Public Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal _ lpCommandLine As String, lpProcessAttributes As Long, lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal _ dwCreationFlags As Long, lpEnvironment As Long, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _ lpProcessInformation As PROCESS_INFORMATION) As Long Public Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Public Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Public Type POINTAPI x As Long y As Long End Type Sub Main() Dim OurThread As Long 'Íèòü çàïóùåííîãî ïðîöåññà Dim retval As Long 'Âîçâðàùàåìîå çíà÷åíèå Dim si As STARTUPINFO, pi As PROCESS_INFORMATION 'Ñòðóêòóðû si.cb = Len(si) Dim AppName As String 'Èìÿ ïðèëîæåíèÿ AppName = "C:\WINDOWS\EXPLORER.EXE" retval = CreateProcess(AppName, vbNullString, ByVal 0&, ByVal 0&, ByVal 0&, ByVal 0&, ByVal 0&, _ vbNullString, si, pi) 'Çàïóñêàåì ïðèëîæåíèå If retval = 0 Then Exit Sub 'Åñëè ïðîèçîøëà îøèáêà, âûõîäèì EnumThreadWindows pi.dwThreadId, AddressOf EnumFunc, ByVal 0& 'Ïåðåäà¸ì óêàçàòåëü íà EnumFunc Âèíäàì End Sub Public Function EnumFunc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim pa1 As POINTAPI Dim pa2 As POINTAPI pa1.x = 0 pa1.y = 0 pa2.x = 2 * ((Screen.Width / Screen.TwipsPerPixelX) / 3) pa2.y = Screen.Height '/ Screen.TwipsPerPixelY MoveWindow hwnd, pa1.x, pa1.y, pa2.x, pa2.y, True End Function Добавлено @ 11:37 вот, лучше так. извиняюсь. для удобства чтения
|
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
хочу, чтобы окно занимало левые две трети экрана. (и левый верх был в левом верхнем углу)
|
|||
|
||||
| Guest |
|
||||
|
Unregistered |
Попробуй передать необходимые параметры окна
в STARTUPINFO, а потом CreateProcess. И я так подозреваю, не
а
|
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Или так
|
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
но окно открывается!
только не в том месте. и в ширину оно занимает не 2/3, а больше так?
увы, всё тоже самое.... |
|||
|
||||
| Гость___Sergey__ |
|
|||
|
Unregistered |
Вставь до вызова EnumThreadWindows
Sleep 1000, можеть меньше, может больше. Пробуй методом тыка. По моему окно не успевает создаться, а ты уже его энумить собрался |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |