Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по иконкам в родных ресурсах VB.Net / 1 сообщений из 1, страница 1 из 1
05.02.2015, 16:25
    #38872550
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по иконкам в родных ресурсах VB.Net
Например я добавляю некоторый файл myfile.ico
->Свойства -> Ресурсы
->Значки
->Добавить ресурс -> Добавить существующий файл

Предположим, у меня там внутри myfile.ico иконки разных размеров (до кучи скажем еще что разной цветности, хотя последнее время обычно только 32-битные), напр.
48х48 - 32
32х32 - 32
32x32 - 8
32x32 - 4
16х16 - 32
16х16 - 8
16х16 - 4

1. У меня в .Net ресурсе будет полный эквивалент (набор) всех размеров/битностей вложенных иконок?

Далее, мне надо достать из моего ресурса иконку нужного размера, т.е. например оригинал 32х32, а не форматированный 32х32 из исходного 48x48.

В VB6 из обычных ресурсов я доставал например так:
Код: vbnet
1.
2.
3.
4.
Public lngIconNotify_MYICON As Long
...
lngIconNotify_MYICON = LoadImage(App.hInstance, MAKEINTRESOURCE(321), IMAGE_ICON, _
 GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), LR_DEFAULTCOLOR) '32x32


В .Net вроде придумал так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  Public IconNotify_MYICON As Icon

   IconNotify_MYICON= CreateIcon_LargeSmall(My.Resources.TRAY_NOTIFY_MYICON, True) '32x32
...
  Public Function CreateIcon_LargeSmall(ByVal resIcon As Icon, ByVal large As Boolean) As Icon
    Dim cx As Integer
    Dim cy As Integer
    If large Then
      cx = GetSystemMetrics(SM_CXICON)
      cy = GetSystemMetrics(SM_CYICON)
    Else
      cx = GetSystemMetrics(SM_CXSMICON)
      cy = GetSystemMetrics(SM_CYSMICON)
    End If
    Return New Icon(resIcon, cx, cy)
  End Function



P.S. GetSystemMetrics к делу не относится. Будем считать что жестко прошу 32х32

2. lngIconNotify_MYICON и IconNotify_MYICON.handle -это полностью эквивалентные картинки?
Ничего там не исказится? Т.е. могу быть уверен что используется родная 32х32 иконка из оригинального .ico-файла?


Далее,
пусть у меня My.Resources.MYICON16 делался (содержит) из однозначной иконки 16x16 (одна картинка нужного размера).
Т.е. я де-факто знаю что картинка в ресурсе одна и нужного размера.

3. Вот так
Код: vbnet
1.
2.
Public Icon_MYICON16 As Icon
Icon_MYICON16 = My.Resources.MYICON16 

и вот так
Код: vbnet
1.
2.
Public Icon_MYICON16 As Icon
Icon_MYICON16 = New Icon(My.Resources.MYICON16 , 16, 16)


Это эквивалентно? Первого варианта достаточно?

P.S. Icon_MYICON.Dispose() естественно в конце работы присутствует.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по иконкам в родных ресурсах VB.Net / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]