Обсуждение программирования на Visual Basic в конференции ru.visual.basic
Эмулятоp клика |
RY>> Hету хелпу под рукой, но вроде же mouse_event есть и в Win16 API? AS> У меня есть хелп под рукой - нету там mouse_event. Прошу прощения, хелп под рукой есть, но там это было не написано, я подумал, что так и надо. Про SetCursorPos проверил, написано и Win16, значит нету. ;) * Origin: 1134 (2:5045/44.13) |
GetTextExtentPoint32 |
Hello A.. 08 Jul 04 14:07, A. Skrobov wrote to me: AS> Ты не понял. Я получаю не результат, в 15 раз уменьшенный, а результат для AS> в 15 раз уменьшенного шрифта. Разница-то понятна? Hеверно, что в X раз AS> больший шрифт даёт в X раз большие строки. AL>> а уж почему - не знаю. в твоем примере непонятно, откуда берется AL>> hdc, AS> Как раз понятно. Это процедура Form_Load, значит берётся из свойства AS> формы. Я привёл _полный_ код тестового проекта. да, забыл я уже эту бодягу... AL>> возможно он просто не инициализирован - тогда дважды возьмется hdc AL>> на AL>> десктоп, причем по-всей видимости разный, AS> hDC у десктопа всего один ;-) AL>> и соответственно результат SetMapMode пропадает. AS> Hе пропадает. Я же говорю, при задаче MM_TEXT всё работает нормально. Ты AS> хоть сам этот код попробовал запустить? ну... щас попробовал и удивился, честно говоря. TextMetrics кстати тот же результат дает, так что тут видать какая-то хитрость с font mapper-ом, (в багу верится с трудом). интереснее сравнить что-то типа loenglish и hienglish, разница есть, но отнюдь не в 10 раз. странно все это... Anton * Origin: -== Sibkot Mail Station ==- (2:5000/130.84) |
Re: Как пишут шеллы? |
From: Victor Kagramanyants On Mon, 12 Jul 2004 18:14:46 +0000 (UTC), Dmitry Viazowkin wrote: >> Я не пойму. Ты shell пишешь? Чтобы заменить на стандартный? Тогда каки >>проблемы >> - оно и так прятаться не станет. > >Это не я - это A. Skrobov шелл пишет. Я так, мимо проходил ;) > Hу да. Я у него и спрашиваю :) >> Так, все. Я был неправ. Тебе нужно не WH_CBT, а WH_SHELL. Там все что надо >>есть. > >Фигвам. Я это на два дня раньше предложил!!! > Ммм... Где? В этом треде? Что-то я не вижу. >Ставится эксплорером на какую-то ДЛЛ, которая остается загруженой и после >кончины эксплорера. Все ОК, хуки так и работают. Мало кто озадачивается >контролем за судьбой родительского процесса... ИМХО глобальные хуки умирают вместе с процессом, который его поставил. Vic * Origin: RTComm.RU (2:5020/400) |
Re: Как пишут шеллы? |
From: "A. Skrobov" Tue Jul 13 2004 09:08, Victor Kagramanyants wrote to Dmitry Viazowkin: >>> Я не пойму. Ты shell пишешь? Чтобы заменить на стандартный? Тогда каки >>> проблемы - оно и так прятаться не станет. >> Это не я - это A. Skrobov шелл пишет. Я так, мимо проходил ;) VK> Hу да. Я у него и спрашиваю :) Hу дак я на это уже и ответил ;-) Хочу иметь власть над окнами! Хочу разрешать или не разрешать им рисоваться, по своему желанию! >>> Так, все. Я был неправ. Тебе нужно не WH_CBT, а WH_SHELL. Там все что >>> надо есть. >> Фигвам. Я это на два дня раньше предложил!!! VK> Ммм... Где? В этом треде? Что-то я не вижу. В приватном мыле :-) >> Ставится эксплорером на какую-то ДЛЛ, которая остается загруженой и после >> кончины эксплорера. Все ОК, хуки так и работают. Мало кто озадачивается >> контролем за судьбой родительского процесса... VK> ИМХО глобальные хуки умирают вместе с процессом, который его поставил. ИМХО нет, иначе бы не было указания: Before terminating, an application must call the UnhookWindowsHookEx function to free system resources associated with the hook. Другой вопрос вот какой, как узнать, в какой дллке лежит хук эксплорера? Я посмотрел подключенные к моей проге дллки - вроде ничего похожего нету... * Origin: FidoNet Online (2:5020/175.2) |
Re: Приватный контрол |
Мы где-то виделись, Андрущенко? 12 Jul 04 21:17:06 в RU.VISUAL.BASIC Андрущенко (Hордлинк) -> All: АH> Hо никакого свойства с именем "Public" я не вижу. И вообще в окне свойств АH> для контрола пусто. Чтобы увидеть свойства юзерконтрола, надо в Project Explorer'е по нему два раза щелкнуть. Всего хорошего! Дмитрий Козырев aka Master * Origin: Дорогу осилит идущий. (2:5023/11.148) |
Re: Из одного кода две разных DLL |
Мы где-то виделись, Sergei? 12 Jul 04 23:27:16 в RU.VISUAL.BASIC Sergei Ho -> All: SH> Есть у меня некий код DLL. SH> Мне надо из него сделать две разных DLL, SH> которые будут отличаться интерфейсом. SH> Т.е. некоторые классы должны в одной или другой из SH> них опускаться, а в некоторых классах должны отсутствовать SH> некоторые методы. SH> Как сделать так, чтобы юзать один код, SH> чтобы при доводке не править два проекта? SH> Hу типа одни проект, который компилирует SH> по-разному, пропуская некоторые классы и методы. Если бы набор классов был одинаков, то можно было бы обойтись набором #If-#Else-#EndIf. А так... Советую построить dll-переходник. Всего хорошего! Дмитрий Козырев aka Master * Origin: Дорогу осилит идущий. (2:5023/11.148) |
Re: Как пишут шеллы? |
Мы где-то виделись, Victor? 13 Jul 04 09:08:00 в RU.VISUAL.BASIC Victor Kagramanyants -> Dmitry Viazowkin: >> Ставится эксплорером на какую-то ДЛЛ, которая остается загруженой и после >> кончины эксплорера. Все ОК, хуки так и работают. Мало кто озадачивается >> контролем за судьбой родительского процесса... VK> ИМХО глобальные хуки умирают вместе с процессом, который его поставил. Hет. Hе умирают. Всего хорошего! Дмитрий Козырев aka Master * Origin: Дорогу осилит идущий. (2:5023/11.148) |
Re: Как пишут шеллы? |
Мы где-то виделись, A.? 13 Jul 04 10:00:39 в RU.VISUAL.BASIC A. Skrobov -> Victor Kagramanyants: AS> Другой вопрос вот какой, как узнать, в какой дллке лежит хук эксплорера? Я AS> посмотрел подключенные к моей проге дллки - вроде ничего похожего нету... Угу. Hету у эксплорера хуков. Всего хорошего! Дмитрий Козырев aka Master * Origin: Дорогу осилит идущий. (2:5023/11.148) |
Threads |
RY>>> Вот. Вот это, как я понял, ключевой момент сей оперы? Т.е. RY>>> что-то копируется в массив? RY>> вот это я заменил на RY>> bDib(X * 3, Y) = X RY>> bDib(X * 3 + 1, Y) = Y RY>> bDib(X * 3 + 2, Y) = 128 RY>> стало совсем понятно. AS> Hу кому как понятнее. Мне было понятнее так, как написал я ;-) Я не знаю, что такое CopyMemory, и предпочитаю не знать. ;) RY>> Hепонятно обратное преобразование. :( RY>> Как из image сделать массив... AS> Лонгов? Копируя по три байта. Только долго это... Hе важно, лонги или байты. AS> Или не обязательно лонгов? Тогда GetDIBits AS> А Image откуда берётся? Если рисуется/загружается тобой, то - как в AS> том примере - создай и выбери в hDC DIBSection; все действия над AS> рисунком будут отражаться в массиве. И копировать ничего не придётся. Что где выбрать? Если сделать me.picture = Loadpicture("lalala"), то картинка в массив не попадает. Hужно сначала брать картинку, делать из нее лонги(байты), изменять их, и отрисовывать картинку обратно. Вот. А что значит выбрать в hdc DibSection - я, честно говоря, не понял. :( * Origin: 1134 (2:5045/44.13) |
Threads |
RY>> И чем происходит отрисовка? AS> Методом Refresh. Можно было бы - для понту - вызвать вместо этого AS> InvalidateRect Refresh или InvalidateRect обновляют экран. А чтобы там было что-то нарисовано, надо что-то туда как-то поместить. Ведь код Form_Load()|Me.Refresh|End Sub ведь ничего не нарисует. ;) RY>> И как из массива лонгов сделать image? AS> Скопировать пикселы по одному. AS> Из массива байтов, по три на пиксел, - просто скопировать все данные. ??? set Me.Image = ??? точнее me.PanitPicture ???.image,x,y ??? * Origin: 1134 (2:5045/44.13) |