C# иконка(значок) для программы — Иконка для программы на c#


Expert Coders

Как в C# применить иконку к .exe файлу?

Читайте также:

  • Ничего не найдено

One thought on “ Как в C# применить иконку к .exe файлу? ”

Так тебе надо что бы именно была иконка?
если да то лови:
Заходишь в Проект>Свойства (последняя)
В ресурсах смотришь (Значок и манефест)
Там и выбираешь путь к .ico файлу
Так же если хочешь что бы иконка отображалась когда программа включена то переходишь на форму тыкаешь на нее и выбираешь в свойствах Icon!

Лучший способ создать значок приложения

Каков наилучший способ создания значка для приложения?

Из Visual Studio или, возможно, еще одна программа.

Я создаю значок в Visual Studio и использую его как значок приложения, но когда я помещаю ярлык на рабочем столе, есть только серый значок. Возможно, это из-за размеров значков или чего-то еще?

c# winforms icons createfile

7 ответов

6 Решение Cody Gray [2011-01-09 15:35:00]

Вы просто не можете победить IcoFX для цены и набора функций.
Это одна из моих любимых программ, и она делает дизайн иконок невероятно легким. Если вы используете MS Paint или редактор значков, встроенный в Visual Studio, вы обязаны сделать это самостоятельно, чтобы загрузить IcoFX и попробовать.

Adobe Photoshop — это 300-фунтовая горилла, но я думаю, что все, кто знает (или хочет учиться), как использовать Photoshop уже знает это.

Но на самом деле, может быть, мы, разработчики, обманываем самих себя, думая, что мы иконописцы. Помимо нескольких специализированных случаев, когда вы не можете найти значок, который вам нужен, вы обязаны своим пользователям использовать существующую библиотеку значков. Серьезно, даже с помощью лучших инструментов, вы могли бы дизайн эти? Я так не думал.

Лучшие программы для изображений — это продукты Adobe. Однако Paint.NET является хорошим бесплатным инструментом (см. Создать файлы .ico с Paint.NET).

На вкладке приложения свойств проекта в группе «Ресурсы» добавьте файл значка в раздел «Значок» и «Манифест».

2 Waruyama [2020-10-01 12:15:00]

Если у вас нет художественных навыков, вы должны посмотреть Iconfu. Вы можете просто выбрать значок базы и применить к стилю пользовательские стили и цвета.

1 Uwe Keim [2011-01-09 15:30:00]

Здесь, в нашем офисе, мой сотрудник использует Microangelo Icon Editor. Он дизайнер экрана, поэтому я предполагаю, что он знает, что он делает.


Будучи программистом, я никогда не осмелился бы создавать иконки самостоятельно. У меня нет графических навыков. Обычно я полагаюсь на сторонние библиотеки, такие как Icon Experience.

1 Kurru [2011-01-09 15:32:00]

Если вам нравится использовать Photoshop, там доступно множество бесплатных инструментов экспорта значков, которые я использую лично

Я также создал несколько хороших с AWIcons Pro, который имеет бесплатную пробную версию.

C# иконка(значок) для программы — Иконка для программы на c#

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

Рассмотрим основные его свойства:

BallonTipIcon : иконка, которая будет использоваться на всплывающей подсказке. Это свойство может иметь следующие значения: None , Info , Warning , Error .

BalloonTipText : текст, отображаемый во всплывающей подсказке

BalloonTipTitle : загаловок всплывающей подсказки

ContextMenuStrip : устанавливает контекстное меню для объекта NotifyIcon

Icon : задает значок, который будет отображаться в системном трее

Text : устанавливает текст всплывающей подсказки, которая появляется при нахождении указателя мыши над значком

Visible : устанавливает видимость значка в системном трее

Чтобы добавить на форму NotifyIcon, перенесем данный элемент на форму с панели инструментов. После этого добавленный компонент NotifyIcon отобразится внизу дизайнера формы.

Затем зададим у NotifyIcon для свойства Icon какую-нибудь иконку в формате .ico. И также установим для свойства Visible значение true .

Далее также зададим у NotifyIcon для свойства Text какой-нибудь текст, например, «Показать форму». Этот текст отобразится при прохождении указателя мыши над значком NotifyIcon в системном трее.

Чтобы можно было открыть форму по клику на значок в трее, надо обработать событие Click у NotifyIcon. Поэтому в коде формы определим обработчик для этого события:

В обработчике просто переводим форму из минимизированного состояния в обычное.

И кроме того, чтобы форма не отображалась на панели задач, у нее задаем свойство ShowInTaskbar = false .

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

Теперь используем всплывающую подсказку. Для этого изменим конструктор формы:

И при запуске отобразится всплывающая подсказка:

C# иконка(значок) для программы — Иконка для программы на c#


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

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

Всем доброго времени суток.

Visual Studio 2010/// готовая программа решил навести красоты, и забабахать ей оригинальную иконку.
Но испытываю определенные проблемы.
Из PNG создал ICO, добавил его в ресурсы проекта, изначально это было PNG 256×256\32b
при добавлении обнаружил классную функциональность VS, т.е. в боковом списке отображаются все возможные
изменения картинки по размеру, ну как-бы я так понял, что эти кадры автоматически создаются для того, чтобы
при разном виде отображения в проводнике, иконка кадр подбирался соответствующего размера.
Построил проект, но приложение по прежнему, отображает мой значок лишь когда в проводнике оно маленькое,
«Большие значки» или «Обычные значки» или «Огромные значки» по прежнему стандартная картинка.

Подскажите в чем проблема ведь я подгружаю 256х256 — а этого вполне достаточно для Огромного значка ?

Это сообщение отредактировал(а) RUVATA — 10.2.2011, 16:55

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

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

Не знаю как в 2010, а в 2008 я делал так:
создавал файл ресурсов (app.res), в него заталкивал все необходимые мне иконки всех размеров, можно например использовать Resource Builder

главное чтоб структура именно такая была, т.е. ICON_0, а в ней все иконки со своими индексами, а не ICON_0, ICON_1, ICON_2 и т.д.
а потом в свойствах решения надо указать на этот ресурс

Это сообщение отредактировал(а) puZzo — 18.2.2011, 18:39

puZzo
Дата 18.2.2011, 18:38 (ссылка) | (нет голосов) Загрузка .

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

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

IRO
Дата 19.2.2011, 07:29 (ссылка) | (нет голосов) Загрузка .

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

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

можно использовать специальные программы

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

puZzo
Дата 19.2.2011, 11:54 (ссылка) | (нет голосов) Загрузка .

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

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

IRO
Дата 19.2.2011, 14:16 (ссылка) | (нет голосов) Загрузка .
Цитата(puZzo @ 19.2.2011, 11:54)
поэтому и нужно в ресурсы приложения добавлять одну и ту же иконки, но с разными размерами.


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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

Да конечно нет. щас в студии за 15 секунд сделал с 5-ю размерами. все работает как надо.

Присоединённый файл ( Кол-во скачиваний: 17 )
Icon1.rar 0,32 Kb

-Mikle-
Дата 19.2.2011, 14:33 (ссылка) | (нет голосов) Загрузка .

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

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

puZzo
Дата 20.2.2011, 08:04 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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

-Mikle-
Дата 20.2.2011, 09:25 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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

Открываете студию 2010.
1) File -> New -> File.
2) В разделе General, выбираем Icon File
Появляется редактор иконок в котором по умолчанию содано два типа.
3) В панели где список размеров (обычно слева от окна рисования) жмем правую кнопку и видим в меню New Image Type.
4) Жмем и выбираем там размер, которой вам нужен.

Потом зарисовываешь как тебе надо все размеры и жмешь сохранить. А дальше известное дело техники.

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

-Mikle-
Дата 20.2.2011, 09:43 (ссылка) | (нет голосов) Загрузка .

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

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

puZzo
Дата 20.2.2011, 12:55 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Персональный блог Толика Панкова


Стихи, рассказы, философия, IT, политика, панкизм, раздолбайство и болтовня.

Вчера в Чертаново высокопоставленный заокеанский покровитель майора Евсюкова посоветовал рыбакам жаловаться в прокуратуру на экс-бойфренда Ксении Собчак

C#, программное создание ярлыка (shortcut) Windows

И случайно, самое полное описание WshShortcut .

Почему-то, уж не знаю почему, в .NET Framework (во всяком случае до 4 версии, в 4 вроде появился) не было стандартного способа создать ярлык (файл .LNK) программно. Но способы все-таки есть. Расскажу о них, в порядке уменьшения геморройности.

I. Создать ярлык вручную

Самый геморройный способ, для любителей ассемблера и прочего байтокопательства. Файл ярлыка ( *.lnk ), это обычный бинарный файл. Почему-то в сети бытует мнение, что формат LNK-файлов закрыт, и чуть ли не засекречен. Однако это не так, спецификация формата вполне себе открыта и лежит на официальном сайте Microsoft. Так что остается осилить 48 страничную спецификацию, и можно приступать. �� Но мы этого делать не будем. Замечу лишь, что в формате файла есть несколько странных моментов. Например, зачем хранить в файле ярлыка серийный номер тома и тип диска (HDD, CD, Floppy) и NetBIOS имя компьютера, я совершенно не понимаю.

II. Обратиться к Windows Script Host через COM-интерфейс

Остановлюсь поподробнее на некоторых моментах. Сначала самое основное.
В References проекта надо добавить соответствующий компонент (щелкнуть по References правой кнопкой мыши, выбрать Add Reference…) В появившемся окне выбираем вкладку COM и находим компонент Windows Script Host Object Model.

Из-за того, что мы используем COM-интерфейс, с нашей программой придется таскать библиотеку для взаимодействия с ним Interop.IWshRuntimeLibrary.dll (ее нам без нашего участия сделает компилятор .NET).
Теперь указываем соответствующую директиву using :

Создаем объект WSH Shell:

WshShell wshShell = new WshShell(); //создаем объект wsh shell
На самом деле у объекта WshShell довольно много интересных возможностей, например выполнять VBS или JS сценарии прямо из кода C#, со всеми возможностями Windows Scripting Host, естественно. Но это так, к слову. Мы же создадим объект для управления ярлыком:

IWshShortcut Shortcut = (IWshShortcut)wshShell.
CreateShortcut(ShortcutPath);

где ShortcutPath — строковая переменная, в которую записан путь к файлу создаваемого ярлыка.

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

Shortcut.TargetPath = @»C:\Windows\notepad.exe»; //путь к целевому файлу

Если дополнительные параметры не заданы, то:
— в качестве иконки ярлыка будет установлена иконка по умолчанию (для EXE — его иконка, для остальных — стандартные системные иконки)
— в качестве рабочего каталога — каталог, в котором расположен целевой файл (тут C:\Windows\ ).
— размер окна — нормальный.

Теперь нужно сохранить ярлык:
Shortcut.Save();

Теперь о дополнительных параметрах, которым особо никто внимания не уделяет, а там скрыто несколько мелких гадостей и глюков.

Рабочий каталог:
Задается строковым параметром Shortcut.WorkingDirectory . Если его не задавать вообще, то, как я ранее говорил, WshShell пропишет в ярлык каталог, в котором расположен целевой файл. А вот если задать, то он пропишет туда любую строку без всякой проверки. Если строка будет null или пустой, то и каталог будет не указан. Если, например, нужно в случае указания null прописывать каталог целевого файла, то можно сделать это таким образом:

Стиль окна приложения:
Задается параметром int Shortcut.WindowStyle
Значения параметра следующие:
1 — обычный размер окна ( Normal )
3 — развернутое на весь экран ( Maximize )
7 — свернутое в трей ( Minimize )
Попытка задать другое значение, приводит к установке параметра в 1.
Для удобства можно создать перечисление:

и задавать параметр таким образом:
Shortcut.WindowStyle = (int)WindowStyle;

Параметры командной строки:
задаются параметром string Shortcut.Arguments

Иконка ярлыка:
Задается параметром string Shortcut.IconLocation


Строка IconLocation имеет следующий формат имя_файла, [индекс_иконки]
где имя_файла — имя exe, dll или ico файла, содержащего иконку.
индекс_иконки — индекс иконки в файле exe или dll, для ico файлов является необязательным.
Если параметр не задать, то ярлыку будет установлена иконка по умолчанию, «родная» иконка для исполняемого файла, и соответствующая типу файла, для других файлов.
Внимание! Если значение этой строки будет пустым или null , то это приведет к ошибке ArgumentException «Значение не попадает в ожидаемый диапазон.» , так что необходима соответствующая проверка.

Описание ярлыка:
Задается параметром string Shortcut.Description , отображается как всплывающая подсказка при наведении курсора на ярлык.

Горячая клавиша:
Задается параметром string Shortcut.Hotkey
Внимание! Если переменной попытаться установить значение null , произойдет ошибка нехватки памяти ( OutOfMemoryException ). Любая строка не подпадающая под формат, вызывает ArgumentException «Значение не попадает в ожидаемый диапазон.»

Строка должна быть следующего вида: «Ctrl+Alt+N» , т.е. содержать названия клавиш-модификаторов, символьную или функциональную клавишу, названия должны быть разделены знаком + без пробелов. Названия регистронезависимы.
Чтобы хоткей сработал, ярлык надо создавать или в меню Пуск, или на Рабочем столе. Почему-то если создать ярлык где-то еще, а потом скопировать в Пуск или на Рабочий стол, хоткей не работает (хотя, если менять горячую клавишу у уже созданного ярлыка, через свойства ярлыка, то все работает). Установленный хоткей становится глобальным для всей системы, т.е. если «Ctrl+Alt+N» обрабатывается в какой-то программе, то после создания ярлыка, сочетание клавиш будет перехвачено Windows, и запустится то, на что указывает ярлык.
Список возможных клавиш:
Модификаторы: CTRL+ ALT+ SHIFT+ (и еще какой-то EXT+ встречается в [1])
Алфавитно-цифровые, функциональные и прочие:
F1-F12, 0-9, A-Z
ESC, ENTER, TAB, SPACE, PRINT SCREEN (указывается как SNAPSHOT ) , BACKSPACE [1] (причем обычным способом через проводник установить их нельзя, и нет, Ctrl+Alt+Del так не перехватить, хотя создать такой хоткей можно).
Полный список клавиш можно посмотреть в WINUSER.H или в [2], имена берутся без VK_ , и не получится в качестве третьей клавиши использовать имена модификаторов и мышиных кнопок, ярлык создастся без ошибок, а вот работать не будет.

Через свойства ярлыка нельзя задать горячую клавишу БЕЗ модификаторов. Windows заботливо будет нам подставлять CTRL+ALT+ , а вот с помощью WshShortcut — можно, т.е. если значение Hotkey установить, например в « F1″ и создать ярлык на Рабочем столе, то по нажатию F1 будет вызываться, например, Блокнот. На практике это использовать, конечно, никак нельзя, разве что над кем-нибудь подшутить.

III. Создание ярлыка через Windows API.

Как создать значок для исполняемого файла программы на С#?

Я сделал некоторый Googling, но все результаты указывают на значки в левой верхней части программы.

Как я могу изменить значок моей программы, поэтому, если он сидит на рабочем столе, у него есть хороший взгляд на него?

В проводнике решений Visual Studio щелкните правой кнопкой мыши ваш основной проект > выберите нижнюю опцию, свойствa > в нижней части страницы вы увидите значок проекта и манифест, найдите значок, который хотите использовать.

Надеюсь, что это поможет.

в свойствах вашего проекта, на вкладке «Приложение» вы можете установить свой значок. Это должен быть файл .ico, но у вас есть онлайн-конвертеры, которые будут выполнять задание, чтобы получить их от .png до .ico для вас.

У вашего значка, вероятно, должен быть только слой с более высоким разрешением. Используйте этот онлайн-конвертер с исходным изображением с разрешением не менее 128×128. Он построит правильный набор значков Windows — независимо от глубины бит клиента (32, 16 и т.д.).

Вы можете добавить значок более высокого разрешения для рабочего стола с помощью вашей программы установки.

Анимация иконки в области уведомлений: Справочник по C#

Сделайте клик правой клавишей мыши по элементу управления «notifyIcon1» и выберете из появившегося контекстного меню, пункт «Свойства».

В открывшемся окне свойств данного компонента, выберете свойство «Icon». Данное свойство задает значок, который будет отображаться в области уведомлений. В этом свойстве присутствует кнопка «», сделайте по ней клик левой клавишей мыши и в открывшемся окне добавьте файл иконки с расширением «*.ico». Также найдите свойство «Visible», отвечающее за отображение или срытие значка в области уведомлений, установите значение «True», указывающее на отображение значка сразу после запуска проекта.

Сделайте двойной клик левой клавишей мыши по компоненту «button1», отвечающей за запуск анимации. Вы перейдете в автоматически созданный метод «button1_Click», события «Click», происходящего при нажатии на данный элемент управления.

Запустите проект, нажав на клавишу «F5». В области уведомлений вы увидите иконку указанную в свойстве «Icon», элемента управления «notifyIcon1».

В приложениях Visual C# часто содержатся данные, не являющиеся исходным кодом. Такие данные называются ресурсами проекта и могут включать XML-файлы, двоичные данные, текстовые файлы, аудио- и видео файлы, таблицы строк, изображения, значки, или любой другой тип данных, необходимых для приложения.
Данные ресурсов проекта хранятся в формате XML, в файле с расширением RESX (имя по умолчанию – Resources.resx), который можно открыть в Обозревателе решений. Перейдите в Обозреватель решений и выберете ваш проект, сделайте клик правой клавишей мыши по нему. Выберете из появившегося контекстного меню, пункт «Добавить» и из раскрывающегося подменю, пункт «Создать элемент».

У вас откроется окно «Добавление нового элемента – имя вашего проекта». В левой части окна у вас по умолчанию будет выбран пункт «Элементы Visual C#», в центральной части окна, выберете из предложенных элементов, элемент «Файл ресурсов» и задайте ему имя «IconAni». Нажмите кнопку «Добавить».

После добавления файла ресурсов, вы увидите его в обозревателе решений.

Так же у вас откроется новая вкладка редактора добавленного файла ресурса. В верхней части окна у вас будет выпадающее меню «Добавить ресурс», выберете пункт «Добавить существующий файл…».

В открывшемся окне «Добавить существующий файл к ресурсам» выберете файлы формата «*.ico», которые будут составлять анимацию. После выбора необходимых файлов, нажмите кнопку «Открыть», расположенную в нижней части окна.


После добавления файлов, вы увидите их в файле ресурсов.

Перейдите в конструктор главной формы и добавьте элемент управления «Timer», для организации последовательной смены значка в области уведомлений.

Класс ресурсов входит в пространство имен с именем

.Properties, поэтому для доступа к загруженным файлам значков необходимо указать либо полное имя для каждого ресурса, либо добавить соответствующую директиву using в исходный файл, из которого осуществляется доступ к классу ресурсов.

Для удобства доступа к загруженным файлам, создадим массив с использованием класса «Icon», который представляет значок Windows, являющегося точечным рисунком небольшого размера и использующегося для представления объекта.

Сделайте двойной клик по компоненту «Timer1», вы перейдете в листинг главной формы с автоматически созданным методом «timer1_Tick», события «Tick», возникающего при каждом срабатывания таймера через указанный интервал времени. Добавьте в него код реализующий при каждом срабатывании таймера подстановку нового значка из массива значков расположенных в фале ресурсов «IconAni» и счетчика который обновляется при достижении последнего элемента массива.

Добавьте приведенный ниже код запуска таймера и формирования массива иконок в метод «button1_Click», компонента «button1».

Перейдите в Конструктор главной формы, выполнив сочетание клавиш «Shift+F7» Сделайте двойной клик левой клавишей мыши по компоненту «button2 » . Вы перейдете в автоматически созданный метод « button2_Click », события « Click », происходящего при нажатии на элемент управления. Данная кнопка отвечает за остановку анимации значка в области уведомлений и установку обычного.

Так же добавьте в листинг главной формы две переменные.

Запустите проект, нажав на клавишу «F5», после компиляции проекта нажмите на форме кнопку «Запустить». В области уведомлений вы увидите анимацию в виде крутящегося круга точек.

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

Visual C++. MFC. Работа с иконками

Как Вы уже знаете в Visual C++ программист может работать с множеством элементов, а также использовать ресурсы. В данном уроке речь пойдет о том, как в программе при помощи элемента Picture Control можно задействовать ресурс Icon. Рассматривать этот процесс мы будем по мере создания простого приложения, из серии азартных игр. Суть его работы следующая: пользователь нажимает кнопку, испытывая тем самым удачу, и зарабатывая, либо проигрывая деньги. Впрочем, суть урока не в самом приложении, а в том, чтобы показать как могут иконки меняться местами в элементах Picture Control.

Создайте новое приложение MFC с именем CardGames. В окне тип приложения выберите «На основе диалоговых окон», а также уберите галку с «Использовать библиотеки с поддержкой Юникода».

В следующем окне в поле диалоговое окно введите The CardGames Program, после чего можно нажимать Готово.

Откроется главная рабочая область, предназначенная для работы с приложением. Удалите с нее все элементы, и прежде чем двигаться далее нужно иметь соответствующие изображения. Их Вы можете сделать сами, после этого поместите четыре иконки в папку res вашего проекта. Теперь можно добавить их в саму программу, для этого в «Окне ресурсов» откройте папку icon, и вызвав контекстное меню правой кнопкой мыши, щелкните «Добавить ресурс…».

Появится окно «Добавление ресурса», выделите Icon и нажмите Import. Следует зайти в папку res проекта и от туда импортировать все четыре файла. После этого окно ресурсов будет выглядеть следующим образом:

Поменяем идентификатор каждой иконки на приведенные в таблице.

Теперь можно разместить в диалоговом окне все необходимые элементы для нашей программы.

В свойствах изменим настройки элементов диалогового окна, так как это показано в таблице.

Верхний элемент Group Box будет динамически показывать информацию об оставшихся денежных средствах. В нем также tr style=»mso-yfti-irow: 20;&##187;расположены иконки, которым суждено изменяться, при нажатии кнопки «Рискнуть». Ниже у нас имеются 3 статических надписи, они сообщают об удачных комбинациях. Кнопка «Выплата» нужна для вывода окна с суммой выигрыша, после которого программа завершится.

При помощи «Окна классов» добавим переменные с именами m_Club, m_Diamond, m_Spade, m_Heart и типом HICON в функцию CCardGamesDlg.

Откройте файл CardGamesDlg.cpp и в конец функции CCardGamesDlg добавьте такой код:


m_Club = AfxGetApp()->LoadIcon(IDI_CLUB);
m_Diamond = AfxGetApp()->LoadIcon(IDI_DIAMOND);
m_Heart = AfxGetApp()->LoadIcon(IDI_HEART);
m_Spade = AfxGetApp()->LoadIcon(IDI_SPADE);

Данные операторы будут загружать параметры иконок в переменные-объекты. Сейчас свяжем элементы управления иконками с переменными, необходимыми для смены иконок. Для этого откройте «Мастер классов» и во вкладке «Переменные-члены» добавьте иконкам IDC_CARD1IDC_CARD4 переменные категории Control с именами m_Card1m_Card4, а элементу IDC_AMT_LEFT переменную m_Amt_Left той же категории. Далее, добавим переменную m_Amt_Remaining типа double в класс CCardGamesDlg, тем же самым способом как мы это делали ранее.

Пришло время связать код с событием BN_CLICKED кнопки «Рискнуть». Это мы сделаем классическим способом, а именно через «Мастер классов». В последнем, в поле «Имя класса» выберем CCardGamesDlg, и в окне «Команды» найдем объект IDC_DEALCARDS, к которому необходимо добавить обработчик OnDealcards.

После нажатия кнопки «Изменить код», добавьте следующий код в тело функции OnDealcards.

Не обращайте внимания на ошибки, они исчезнут после того как позже мы добавим всё необходимое. А пока добавьте переменную m_Cards[5] типа int в конец файла CardGamesDlg.h, предназначение которой хранить значение выпавших карт одной масти.

Добавьте функцию с именем DealCards в класс CCardGamesDlg, в качестве типа укажите void. Вас должно перебросить в файл CardGamesDlg.cpp, там измените только что созданную, так как это сделано ниже.

Первая строка в теле функции обнуляет значение выпавших карт одной масти для каждой масти. Далее программа при помощи пока еще не созданной функции PickRandomCard будет случайным образом менять иконки.

Добавим функцию с именем PickRandomCard и типом HICON& в класс CCardGamesDlg. Здесь символ обозначает адрес объекта. Измените функцию следующим образом.

Как Вы помните, в главной функции OnDealcards прописана функция подсчета выигрыша, но на данный момент она отсутствует. Чтобы исправить это добавьте ее в класс CCardGamesDlg, в качестве возвращаемого значения укажите тип void. Измените тело функции:

void CCardGamesDlg :: CalculateWinnings ( )
<
int pairs = 0 ;
for ( int i = 0 ; i 4 ; i ++ )
<
if ( m_Cards [ i ] == 2 )
<
if ( pairs > 0 )
<
m_Amt_Remaining + = 3.00 ;
break ;
>
else
<
pairs ++ ;
>
>
else if ( m_Cards [ i ] == 3 )
<
m_Amt_Remaining + = 6.00 ;
break ;

>
else if ( m_Cards [ i ] == 4 )
<
m_Amt_Remaining + = 9.00 ;
break ;
>
>
>

Здесь подсчитываются совпадения, случайным образом выпавшие в функции PickRandomCard. Наконец свяжем кнопку «Выплата» с событием BN_CLICKED, для этого добавим обработчик к объекту IDCANCEL в мастере классов.

Измените код функции OnBnClickedCancel.

Тогда когда игрок пожелает закончить эту бессмысленную игру, он нажмет на кнопку «Выплата», после чего появится окно с суммой денег выигранных им.

Исходник данной программы Вы можете скачать пройдя на эту страницу.

Использование значка встроенного ресурса в качестве значка приложения в C#

Я пытаюсь указать способ указать мое приложение C# для использования встроенного ресурса (значка) в качестве значка приложения (тот, который отображается для панели задач, переключатель задачи и т. Д.). Тем не менее, поскольку я уже встроил свой значок в ресурс, я могу использовать его в своих формах, но не с моим приложением.

Фактически, если кто-то может сначала сказать мне, где я могу установить это (какой файл) вручную, а не использовать графический интерфейс VS2010, чтобы указать его, это было бы отличным началом!

Тем не менее, мой значок доступен в следующих 2-мя способами: <>.Properties.Resources.c_name.ico и <>.Refs.c_name.ico (как свойство public static class внутри библиотеки классов).

Создан 10 дек. 12 2012-12-10 16:24:53 menssana

Вы используете Winforms или WPF? – Dughall 10 дек. 12 2012-12-10 16:32:41

Winforms на самом деле – menssana 10 дек. 12 2012-12-10 16:38:59

3 ответа

Windows — это неуправляемая операционная система, которая не знает beans о управляемых ресурсах. Единственный значок, который он может отобразить, — это тот, который встроен как неуправляемый ресурс. Вы можете видеть, какие неуправляемые ресурсы выглядят в Visual Studio. Используйте File + Open + File и выберите файл .NET exe (не будет работать в Express). В .NET-программе должно быть три из них: значок, манифест, который объявляет программу совместимой с UAC и ресурсом Version. Все это делается автоматически компилятором, обратите внимание, например, как свойства ресурса Version соответствуют атрибутам, установленным в AssemblyInfo.cs


IDE упрощает установку значка для программы, вы используете Project + Properties, Application вкладка, настройка значка. Просто выберите тот же файл .ico, что и встроенный в качестве управляемого ресурса. Забудьте о попытке поделиться, он не может работать по дизайну.

Создан 10 дек. 12 2012-12-10 16:50:52 Hans Passant

Спасибо, мистер Пассант. – menssana 10 дек. 12 2012-12-10 16:54:42

Просто установите Icon = yourNamespace.Properties.Resources.yourEmbeddedIconName;

Создан 03 сен. 13 2013-09-03 21:35:33 Andrija

Создан 07 окт. 13 2013-10-07 08:16:34 daniel Tortosa

Хороший ответ подробно описывает решение и точно определяет, что и как он делает, что он делает. – Prof Pickle 07 окт. 13 2013-10-07 08:38:11

Иконка для консольного приложения

26 ответов

а с этого места можно подробней? где можно почитать о файле ресурсов, как с ним работать, и тому подобное?

только вот качество иконки оставляет желать лучшего! Может можно как-нить сделать лучше?

Сначала надо найти качественную иконку, можно даже в стиле XP — с альфа-каналом. Потом удалить нахрен иконку из res-файла. Борланд так и не научился работать с иконками в стиле XP.

Пишется rc-файл следующего содержания:

Originally posted by Freeman
Сначала надо найти качественную иконку, можно даже в стиле XP — с альфа-каналом. Потом удалить нахрен иконку из res-файла. Борланд так и не научился работать с иконками в стиле XP.

Пишется rc-файл следующего содержания:

получилось и качество хорошее, только вот когда я компилировал проект он у меня ругнулся на второй res файл т.е. res файл проекта, я его отключил и все нормально, но вот интересно в том res файле ничего нужного не было?

Как конкретно ругнулся?

Если файл ресурсов создан автоматически Билдером, в нем, как правило, хранится иконка приложения и сведения о версии, если включено на соответствующей вкладке свойств проекта.

Кстати, еще раз о качестве. Если не используется более 16 цветов и альфа-каналы, можно цивилизованным способом загрузить иконку приложения. Если ты вручную рисовал, наверняка только в одном размере. Для нормального вида же надо иметь, как минимум, 16×16 и 32×32.

Originally posted by Freeman
Как конкретно ругнулся?

Если файл ресурсов создан автоматически Билдером, в нем, как правило, хранится иконка приложения и сведения о версии, если включено на соответствующей вкладке свойств проекта.

Кстати, еще раз о качестве. Если не используется более 16 цветов и альфа-каналы, можно цивилизованным способом загрузить иконку приложения. Если ты вручную рисовал, наверняка только в одном размере. Для нормального вида же надо иметь, как минимум, 16×16 и 32×32.

Да VersionInfo у меня включен, и икону рисовал как положено в нескольких размерах не только 16×16, 32×32, 128×128, и т.д. что можно сделать?

вот чего я смог сделать:
1. как Freeman советовал, создал файл rc с указанием на иконку с альфа каналами, потом файликом brcc32 создал res файл, потом Resource Workshop 4.5 добавил VersionInfo, подключил res файл к проекту, скомпилировал его и все получилось, но:
1. Автоинкремент версии файла не работает!
2. Каждый раз при смене версий придется делать эту не очень интересную последовательность действий!

меня вот это бы спасло: Как можно иконку в консольном приложении стандартно добавить?

имеешь ввиду через Project->Options->Aplication
так там кнопка Load Icon. не активна!

Цукерберг рекомендует:  Agile - Бесплатный семинар по Agile
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих
-Mikle-
Дата 20.2.2011, 13:19 (ссылка) | (нет голосов) Загрузка .