Иконка Вашей программы

Предыдущая тема Следующая тема Перейти вниз

Иконка Вашей программы

Сообщение  DEPOzit в Ср Дек 03, 2008 9:03 am

Всем привет! Вопрос следующий - как реализовать иконку слева вверху в ГРАФИЧЕСКОМ режиме (например в окне screen 13)? Просто иконка "досовского приложения" смотрется не очень-то серьезно. Объявление иконки в файле ресурсов .rc делает иконку на запускной файл и слева вверху КОНСОЛЬНОГО окна, а как сделать иконку в графическом GUI?

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 36
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  tux в Ср Дек 03, 2008 7:55 pm

скорее всего только если создавать окно вручную((
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  DEPOzit в Чт Дек 04, 2008 2:00 pm

Разобрался сам)))
Создаем файл ресуров. Вводим строку:
Type: ICON
Name: FB_PROGRAM_ICON
ID: 0
Filename: файл_вашей_иконки.ico

Далее собираем, забускаем и вуаля!
Надеюсь мой совет кому-нибудь поможет)))

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 36
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  workman в Пт Дек 03, 2010 3:39 pm

Не получается создать значок программы. Делал как написано выше. Картинку значка с расширением ico делал
специальной программой, помещал в папку с моей программой, но значок не вставал на место.
Еще пробовал создавать проект с codewisard указывая тип создаваемых файлов проекта: GUI и rc. В этом случае
моя программа вообще не запускалась и выдавалось сообщение, что нет OBJ файла.
Просьба к знающим программистам подробно описать процесс создания программы со своим значком.

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  trew в Пт Дек 03, 2010 4:28 pm

Как с RC не пробовал, но как сделать API функциями могу предложить:

Код:
#Define WIN_INCLUDEALL
#Include "windows.bi"
#Include "Myst.bi"
Dim As MSG msg    ' Message variable (stores massages)
Dim As HWND hWnd
' Create window
hWnd = CreateWindowEx( 0, "#32770", "Hello", WS_OVERLAPPEDWINDOW Or WS_VISIBLE, 100, 100, 500, 300, 0, 0, 0, 0 )

Var image=LoadImage(NULL, "1.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE)
SendMessage(hwnd,WM_SETICON,ICON_BIG,image)

While GetMessage( @msg, 0, 0, 0 )    ' Get message from window
  TranslateMessage( @msg )
  DispatchMessage( @msg )
 
  Select Case msg.hwnd
    Case hWnd        ' If msg is window hwnd: get messages from window
      Select Case msg.message
        Case 273    ' Get message when 'X' was pressed
          End
      End Select
  End Select
Wend

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  workman в Сб Дек 04, 2010 10:46 am

Спасибо за пример. Правда у меня он запустился после закомментирования строки #Include "Myst.bi", так как этот файл у меня не обнаружился: error 24: File not found, "Myst.bi" in '#Include "Myst.bi"' (версия FB 0.18.5b Ru).
А можно пример для графической программы типа:

screen 12
line (10,10)-(50,50),1,bf
sleep

?

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  trew в Сб Дек 04, 2010 11:38 am

Правда у меня он запустился после закомментирования строки #Include "Myst.bi", так как этот файл у меня не обнаружился: error 24: File not found, "Myst.bi" in '#Include "Myst.bi"'

Совсем забыл убрать эту строку, это моя библиотека. Все правильно, что закомментировал.

Что касается значка для графической программы, то это делается наверняка просто. Я же предлагаю извращенный вариант Very Happy

Компилировать программу как vrem.exe

Код:
#Include "windows.bi"
screen 12
line (10,10)-(50,50),1,bf

Var hwnd= FindWindow(0,"vrem")
Var image=LoadImage(NULL, "1.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE)
SendMessage(hwnd,WM_SETICON,ICON_BIG,image)
sleep

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  workman в Сб Дек 04, 2010 1:42 pm

Теперь картинка значка появляется везде кроме значка самого ехе-файла. Но для меня и это уже прогресс Very Happy

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  trew в Сб Дек 04, 2010 2:28 pm

-DELETE


Последний раз редактировалось: trew (Сб Дек 04, 2010 2:57 pm), всего редактировалось 1 раз(а)

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  trew в Сб Дек 04, 2010 2:56 pm

В общем оказалось все просто.

создай файл rc с именем таким же как у твоего файла проекта(у меня он называется иконка).

Код:
#define иконка 100

иконка ICON DISCARDABLE "1.ico"

Подключи его к проекту. Все компилируй.


trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  workman в Сб Дек 04, 2010 3:26 pm

Благодарю за примеры, и отдельное спасибо за оперативность

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Посмотреть профиль

Вернуться к началу Перейти вниз

obj

Сообщение  workman в Пн Мар 28, 2011 1:06 pm

Почему при сборке проекта не создается obj файл? Все настройки перерыл, так и не нашел как сделать чтоб он автоматически создавался. Через файл > создать файл > сохранить как (с расширением obj) делал пустой obj.

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Иконка Вашей программы

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения