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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить разрешение экрана 
V
    Опции темы
Alehandro
Дата 17.10.2006, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Надо написать пргу чтоб работала в полно экранном режиме 
800х600.  Как установить данное разрешение экрана ?

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


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



Alehandro
Приветствую.
Установи соответствующее свойство формы в твоем проекте.
WindowState => Maximized  при этом твоя форма будет отображаться на весь экран (15'', 17'', 19'', 20'') при старте программы.
Ну а если ты хочешь конкретный раз мер 800х600, то установи соответствующее свойство формы Size=800,600.
И что пользователь не смог поменять размеры формы и ее место положения на экране, то установи свойство
Loked=True.

Вроде так. Исходя из всех вариантов, которые пришли на ум после твоего "классно" заданного вопроса.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Naum
Дата 17.10.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



У меня тоже есть такой вопрос. Насколько я понял, Alehandro хочет 800 на 600 и именно в полноэкранном режиме. Т.е. как программно установить разрешение экрана в 800х600, или любое другое. 


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 17.10.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Меня смущает вот это 
Цитата(Alehandro @  17.10.2006,  01:32 Найти цитируемый пост)
в полно экранном режиме 

Это как понимать? Просто на весь экран? Или как игры и старые (неоконные) проги?

P.S. Чтобы изменить разрешение экрана, ИМХО, нужно лезть в WinAPI smile 
PM MAIL WWW ICQ   Вверх
Naum
Дата 17.10.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



Цитата(ivashkanet @  17.10.2006,  10:19 Найти цитируемый пост)
ИМХО, нужно лезть в WinAPI

В принципе, именно WinAPI'шную функцию я и хотел узнать.


Цитата(ivashkanet @  17.10.2006,  10:19 Найти цитируемый пост)
Меня смущает вот это 
Цитата(Alehandro @  17.10.2006,  01:32 )
в полно экранном режиме 


Я имел ввиду WindowsState->Maximized; FormBorderStyle->None.

Это сообщение отредактировал(а) Naum - 17.10.2006, 09:33


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 17.10.2006, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(thomas @  17.10.2006,  09:03 Найти цитируемый пост)
Loked=True.

Локед -- это чуть-чуть не то. Это нужно на время проектирования, чтобы контролы нельзя было передвигать в дизайнере мышкой smile
Вместо этого используют 
Цитата(Naum @  17.10.2006,  09:33 Найти цитируемый пост)
FormBorderStyle->None


Цитата(Naum @  17.10.2006,  09:33 Найти цитируемый пост)
Я имел ввиду

А что имел ввиду Alehandro?  smile 
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 17.10.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Функция ChangeDisplaySettings в помощь. Готовый пример с rsdn.ru (не проверял на работоспособность):

Код
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

#region DEVMODE_STRUCT
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE 
{
    [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] public string dmDeviceName;
    public short  dmSpecVersion;
    public short  dmDriverVersion;
    public short  dmSize;
    public short  dmDriverExtra;
    public int    dmFields;

    public short dmOrientation;
    public short dmPaperSize;
    public short dmPaperLength;
    public short dmPaperWidth;

    public short dmScale;
    public short dmCopies;
    public short dmDefaultSource;
    public short dmPrintQuality;
    public short dmColor;
    public short dmDuplex;
    public short dmYResolution;
    public short dmTTOption;
    public short dmCollate;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string dmFormName;
    public short dmLogPixels;
    public short dmBitsPerPel;
    public int   dmPelsWidth;
    public int   dmPelsHeight;

    public int   dmDisplayFlags;
    public int   dmDisplayFrequency;

    public int   dmICMMethod;
    public int   dmICMIntent;
    public int   dmMediaType;
    public int   dmDitherType;
    public int   dmReserved1;
    public int   dmReserved2;

    public int   dmPanningWidth;
    public int   dmPanningHeight;
};
#endregion DEVMODE_STRUCT

#region PINVOKEDEF
class User32
{
    [DllImport("user32.dll")]
    public static extern int EnumDisplaySettings (string deviceName, int modeNum, ref DEVMODE devMode );         
    [DllImport("user32.dll")]
    public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags);

    public const int ENUM_CURRENT_SETTINGS = -1;
    public const int CDS_UPDATEREGISTRY = 0x01;
    public const int CDS_TEST = 0x02;
    public const int DISP_CHANGE_SUCCESSFUL = 0;
    public const int DISP_CHANGE_RESTART = 1;
    public const int DISP_CHANGE_FAILED = -1;
}
#endregion PINVOKEDEF

namespace DirectShow
{
    public class Resolution
    {

        public static void ReadScreenRes( out int width, out int height )
        {
            width = Screen.PrimaryScreen.Bounds.Width;
            height = Screen.PrimaryScreen.Bounds.Height;
        }
                        
        public static void ChangeScreenRes( int width, int height )
        {
            DEVMODE dm = new DEVMODE();
            dm.dmDeviceName = new String (new char[32]);
            dm.dmFormName = new String (new char[32]);
            dm.dmSize = (short)Marshal.SizeOf (dm);

            if (0 != User32.EnumDisplaySettings (null, User32.ENUM_CURRENT_SETTINGS, ref dm))
            {
                #region ChangeDisplaySettings
                dm.dmPelsWidth = width;
                dm.dmPelsHeight = height;

                int iRet = User32.ChangeDisplaySettings (ref dm, User32.CDS_TEST);

                if (iRet == User32.DISP_CHANGE_FAILED)
                {
                    Console.WriteLine ("Change failed");
                }
                else
                {
                    iRet = User32.ChangeDisplaySettings (ref dm, User32.CDS_UPDATEREGISTRY);

                    switch (iRet) 
                    {
                        case User32.DISP_CHANGE_SUCCESSFUL:
                        {
                            Console.WriteLine ("Changed the resolution.");
                            break;
                        }
                        case User32.DISP_CHANGE_RESTART:
                        {
                            Console.WriteLine ("You will need to reboot for the change to happen.");
                            break;
                        }
                        default:
                        {
                            Console.WriteLine ("Failed to change the resolution.");
                            break;
                        }
                    }
                }
                #endregion ChangeDisplaySettings
            }
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
Naum
Дата 17.10.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



mr.DUDA, от меня большое спасибо. Буду смотреть. Держи +1. 

Осталось узнать, этого ли хотел Alehandro.

Это сообщение отредактировал(а) Naum - 17.10.2006, 11:05


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Alehandro
Дата 18.10.2006, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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


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

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


 




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


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

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