2009-02-11 2 views
0

Я ищу, чтобы создать очень легкий GUI-интерфейс в Windows. Предполагается сделать простую задачу - при нажатии комбинации горячих клавиш открывается текстовое поле. Любой текст может быть вставлен, а затем сохранен с помощью простого текстового поля. Я стараюсь избегать любой панели меню или панелей инструментов.Как разработать легкий графический интерфейс для Windows?

Что было бы идеальной библиотекой графического интерфейса для создания чего-то подобного?

+0

Что означает «сохраненный с помощью простого текстового поля»? Почему это помечено wxpython? VC++? Вы хотите, чтобы горячая клавиша работала независимо от того, какое приложение активно? – Aardvark

+0

Уточняйте «легкий», пожалуйста. Должно ли приложение полагаться на максимально возможное количество фреймворков (например, нет .NET), или должно ли оно иметь как можно меньше кода? –

+0

Удален тег «wxpython», поскольку он предвзято задает вопрос по этому инструменту. Также удален тег «vC++», хотя можно утверждать, что он должен оставаться - если вы используете Visual C++, ваши варианты немного ограничены. – Rob

ответ

2

Я бы что-то постучал с помощью WTL - размер участка будет небольшим - возможно следующая лучшая вещь для необработанного приложения Win32, написанного на C. Там не будет в зависимости от того, как могут возникнуть проблемы, например, что может быть важно.

WTL доступен из Source Forge:

http://sourceforge.net/projects/wtl

Есть несколько отличных статей по проекту кодекса, чтобы вы начали. В WTL-загрузке можно установить WTL-приложение Wizard для Visual Studio, которое даст вам приложение с костями с несколькими щелчками мыши.

+0

+1 избили меня до этого ... – Aardvark

2

Предполагая, что у вас есть Visual Studio, .NET будет проще всего запускать и запускать в кратчайшие сроки.

+0

Но разве это действительно легкий вес? – Brettski

+0

Это зависит от того, к какому критерию вы хотите применить «легкий». –

+0

Он должен бежать в фоновом режиме, чтобы он мог быстро зацепиться за быструю комбинацию горячих клавиш, а затем исчезнуть с побегом – vivekian2

0

Легкие каркасы были областью ATL/COM в течение длительного времени.

Для чего-то такого простого с основной целью быть легким, я бы сказал, что вообще не использовать графическую библиотеку. Все элементы пользовательского интерфейса доступны через прямой вызов API. Я бы порекомендовал собрать копию Чарльза Петцольда Программирование Windows, в котором рассказывается, как это сделать подробно.

0

MFC, Win32, WinForms, .NET формы ...

Для такого простого приложения, вы должны использовать то, что вы знаете, лучший (язык и рамки).

Если вы ничего не знаете (это происходит, не беспокойтесь об этом), и вы хотите учиться, C# может быть проще и меньше хлопот по настройке, чем устанавливать сторонние инструментальные средства и фреймворки (wxPython, tk/tcl, QT, ...)

+2

winforms = .net forms –

+0

спасибо, я думал о C# и C++ и откладывал оба даже если они являются «теми же» – Max

+0

C# не является инструментарием GUI, это язык. Вы имели в виду ссылку на Windows Forms? – Rob

3

Что именно вы подразумеваете под «легким весом»? Если абсолютная минимальная сумма системных ресурсов важна, вы должны закодировать ее стиль Петцольда с использованием «C» и необработанного API Win32. Это займет у вас пару дней, дайте или возьмите.

Если «легкий вес» означает «Я хочу сделать это через час и сделать с ним» (возможно, быстрее, чем ждать ответа на SO), вы должны закодировать его с помощью RAD-инструмента, такого как Windows Forms. Он определенно использует лот больше ресурсов, чем версия «C». Однако очень маловероятно, что вы когда-нибудь заметили.

+0

Легким он не должен быть перетаскиванием системных ресурсов и действительно мгновенным для конечного пользователя. Также с стороны пользовательского интерфейса он должен быть чистым - никаких краев, без меню просто простого текстового окна. – vivekian2

0

Я не много сделал в этом, но я воспользуюсь Visual Studio с C#, чтобы получить свой интерфейс. Инструменты GUI для создания других графических интерфейсов довольно хороши, поэтому вы, вероятно, можете сделать это очень быстро.

Если у вас есть полный контроль над тем, что вы собираетесь использовать, я бы рекомендовал использовать Java Swing. У этого есть куча классов, которые делают большую часть материала, который вы хотите, чтобы этот штекер действительно был легко друг в друге. Как преимущество, если вам когда-либо понадобится, это порты на другие платформы, по сути, бесплатно. Тем не менее, вы, конечно, захотите посмотреть учебник, потому что он работает не так, как большинство других библиотек, но вы захотите сделать это для любой среды.

Если вам нужно быть на C++, вы, вероятно, захотите изучить использование MFC, но для других языков есть гораздо лучшие рамки.

1

Вопрос довольно широк, но я неравнодушен к пользовательским интерфейсам на основе разметки. Вот окно с текстовым полем в WPF:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 
    <Grid> 
     <TextBox x:Name="InputBox"/> 
    </Grid> 
</Window> 

Теперь я не буду даже пытаться утверждать, что WPF имеет самую короткую кривую обучения, но является самый мощный на Windows, и это довольно легко подобрать с правильной оснасткой. (т. е. выражение). Blend не дешев, но некоторые люди уже имеют его бесплатно и не знают об этом (студенты, подписчики MSDN, некоторые стартапы). Visual Studio 2010 значительно улучшена в этой области, поэтому Blend может и не понадобиться.

0

Возможно, это все еще можно сделать с помощью файла сценария VBS и стандартных COM-библиотек. Вероятно, еще проще с PowerShell.