Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Некоторые проблемы с установкой нашей программы поверх всех окон

Ответить
Настройки темы
C/C++ - Некоторые проблемы с установкой нашей программы поверх всех окон

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Делаю вот так:
Код: Выделить весь код
SetWindowPos(Form1::Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE);
Компилятор мне выдает вот так:
Код: Выделить весь код
error C2664: 'SetWindowPos' : cannot convert parameter 1 from 'System::IntPtr' to 'HWND'
Может я не тот HWND беру?
Ну задача вот такая: установить форму нашей программы поверх всех других окон, даже поверх "Пуска".
Использую Microsoft Visual Studio 2005 (Windows Form Application).
Спасибо за помощь!

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 08:02, 30-12-2009

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


crashtuak, если проект WinForm (то есть с использованием .NET Framework) лучше использовать строчку кода Form1::TopMost = true;
А для Win32 подхода, по которому уже должна быть прописана функция SetWindowPos (кстати если окно необходимо просто на время вывести поверх всех окон, то тогда лучше использовать SetForegroundWindow), компилятор всё правильно говорит, так как HWND (дескриптор окна) и Handle (дескриптор объекта) разные вещи.
Если всё же интересен и Win32 подход нужно заполучить HWND формы. Это можно сделать, ну скажем Win32 функцией FindWindow.

P.S.
Для VB.NET, коллеге по цеху WinForm, позволительно использовать и Handle, вместо hwnd, объекта Me, в качестве аргумента упомянутой функции SetForegroundWindow.
http://forum.oszone.net/post-1092960.html#post1092960
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:27, 30-12-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Admiral, спасибо, ваши советы мне помогли. Решил получить HWND формы с помощью FindWindow, далее в ход пошла SetWindowPos, с помощью которой я заодно и задал нужные размеры и позицию окна(убил сразу трех зайцев).

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 15:59, 30-12-2009 | #3


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


crashtuak, между прочим, размер и положение формы можно так же задать и WinForm средствами
Form1::Size::set (System::Drawing::Size(720, 576));
Form1::DesktopLocation::set (System::Drawing::Point(50, 20));

Но это как будет удобнее, дело вкуса.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:32, 31-12-2009 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Некоторые проблемы с установкой нашей программы поверх всех окон

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Win32 API - WinAPi приложение поверх всех окон XCodeR Программирование и базы данных 19 15-03-2012 18:55
Мультимедиа - AverTV Webant Программное обеспечение Windows 42 14-03-2011 20:51
Порно-баннер поверх всех окон NukeReACTOR Лечение систем от вредоносных программ 12 17-11-2009 20:21
Интерфейс - [решено] Как сделать любую программу "поверх всех окон"? DesignerMix Microsoft Windows 7 3 24-10-2009 13:17
C/C++ - [C++Builder 2007] Две формы поверх всех окон и одна форма поверх другой crashtuak Программирование и базы данных 3 13-04-2009 16:33




 
Переход