Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прилипание окна к границам экрана, Как реализовать... 
:(
    Опции темы
Snatch
Дата 9.11.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Заранее извиняюсь за возможность повтора вопроса, но..

В локалке пишем свой чат на C#, сам чат давно написан, но останавливатся на достигнутом как-то мало кому хочется.
Сидел я как-то ковырялся в настройках софтинки какой-то, двигал окошечки всякие и мне в голову пришла совсем не свежая мысль, а именно: было бы неплохо, если бы наш чат умел прилипать к границам экрана (только главное окно и только к границам экрана) и сделать это функционально (вкл/выкл прилипание). Раз задумал надо думать над реализацией. Первым делом полез в и-нет на поиски, но все время попадается реализация на Delphi и на С++ (в виде классов). Облазил много сайтиков, переыл ваш форум (в том числе и по поиску), но нашел схожую тему на С++, правда там было с прилипанием окон др. к др. Поможайте, программеры добрые
PM MAIL ICQ   Вверх
ArtemRubtsov
Дата 12.11.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 12.11.2006

Репутация: нет
Всего: нет



Не совсем красиво, но работает (при отпускании мыши)
наверняка можно сделать лучше

Код


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    { Private declarations }
     procedure OnMove(var Msg: TWMMove); message WM_MOVE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnMove(var Msg: TWMMove);
begin
  inherited;
  if Form1.Top <20 then Form1.Top:=0;
  if Form1.Left <20 then Form1.Left :=0;
end;

end.




Это сообщение отредактировал(а) ArtemRubtsov - 12.11.2006, 22:01
PM MAIL   Вверх
Snatch
Дата 13.11.2006, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Вот нашел (www.codeproject.com), но чего-то я туплю и не могу "повешать" на форму smile

2 ArtemRubtsov:
Спасибо большое за ответ, но код на C# надо

Это сообщение отредактировал(а) Snatch - 13.11.2006, 07:48
PM MAIL ICQ   Вверх
ivashkanet
Дата 13.11.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



ArtemRubtsov, так он же не "отпустит" форму от края экрана. Да и прилипание идет только к Верхнему и левому краю  smile 
Самое сложное в реализации --- это сделать отлипание 

P.S. 
Цитата(Snatch @  13.11.2006,  06:47 Найти цитируемый пост)
Спасибо большое за ответ, но код на C# надо

Snatch, ты уж извини, но что сложного в коде ArtemRubtsov-а? Неужели так сложно его перевести на C# (Говорит человек ни разу не видящий Дельфи)

PM MAIL WWW ICQ   Вверх
Laprado
Дата 19.11.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 24.5.2006
Где: Firefox

Репутация: нет
Всего: нет



Простейший вариант. Отлипание происходит само-собой.

Код

 private void Form1_Move(object sender, EventArgs e)
        {
            if (this.Left < 10)
            {
                this.Left = 0;
            }
            if (this.Top < 10)
            {
                this.Top = 0;
            }
        }

--------------------
PM MAIL   Вверх
Snatch
Дата 23.11.2006, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Если использовать данный код, то форма начинает "разрываться" между прилипанием к границе и между ее "нынешнем" положением (при зажатой левой кнопки мыши).
Странно, но когда я пробовал дописать this.Right и this.Botton студия начинает ругаться на отсутсвие объявления.
Ну да ладно, я вчера прикрутил Sticky Windows, теперь все как надо прилипаеи и отлипает smile

Спасибо за участие ;)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.