Страницы: 1
RSS
Изменение иконки приложения Excel средствами WinAPI
 
Добрый день, всем.

Не пойму, что не так? Может кто-то подскажет.

В формах удалось назначить иконку в строке заголовка, а в самом приложении не получается убрать иконку Excel.
Код для иконки приложения в модуле...
Помогите, пожалуйста разобраться...
Очень нужно!
Изменено: Lock - 05.11.2013 13:35:03
Иногда только промахнувшись, понимаешь как ты попал.
 
На панели задач - меняет. В левом верхнем углу, увы, нет, видимо отображается другими нестандартными средствами.
P.S. Hwnd для Excel можно получить через Application.Hwnd
 
Может кто-то может дать исчерпывающий ответ? Или где почитать? А лучше , конечно, и то и другое.)))
Иногда только промахнувшись, понимаешь как ты попал.
 
Цитата
Может кто-то может дать исчерпывающий ответ?
Вы всерьёз считаете что здесь собрались специалисты по С, а не по прикладному программированию для Excel? Реальнее на форумах по С++/С найти ответ. Почитайте здесь. и здесь, может чем-нибудь поможет.
P. S. Если не секрет, то для каких целей нужно поменять/убрать значок окна Excel?
Изменено: anvg - 06.11.2013 05:33:58
 
Не секрет. Я написал большую программу, более 10000 строк и визуально она не похожа на Excel, поэтому и от значка хотел избавиться - для того, чтобы выдержать стиль.
Иногда только промахнувшись, понимаешь как ты попал.
 
Не хватает конкретики. В приложенном примере иконка меняется, о какой тогда речь?
Какую конкретно проблему нужно решить и для какой версии excel?

В версии 2003 иконка в заголовке окна приложения меняется. Остается иконка в панели меню, ее можно убрать вместе с панелью: Application.CommandBars( "Worksheet Menu Bar" )  .Enabled = False и нарисовать свои менюшки.

В версии 2007 иконки в левом верхнем углу нет

В версии 2010 иконки в панели быстрого доступа, не уверен, но можно попытаться убрать вместе с панелью с помошью XML. Посмотрите теорию и примеры (см. Dictator... в примерах 3-й ссылки.) на сайте у Ron de Bruin, может, там что есть подходящее.
http://www.rondebruin.nl/win/s2/win001.htm
http://www.rondebruin.nl/win/s2/win012.htm
http://www.rondebruin.nl/win/s2/win003.htm
Изменено: ZVI - 07.11.2013 04:40:21
 
Спасибо, я посмотрю.
А у вас в 2010 в левом верхнем углу убирается???
У меня нет.
Иногда только промахнувшись, понимаешь как ты попал.
 
Загрузил Dictator из приведенной ссылки в excel 2010 - в левом верхнем углу иконка есть.
 
У меня тоже ничего пока не получается
Иногда только промахнувшись, понимаешь как ты попал.
 
Можно открыть на весь экран Application.DisplayFullScreen = True
Но Андрей (anvg в следующем сообщении) прав, это не удаляет значок
Изменено: ZVI - 07.11.2013 04:59:52
 
Владимир
Не совсем понял ваше предложение в файле HideTitle. Да, кнопки свернуть/развернуть/закрыть и системное меню удаляются. Но если не переводить Application.DisplayFullScreen в True, то ни значок, ни заголовок не исчезают, увы.
Может для Lock, уж коль это настолько
Цитата
визуально она не похожа на Excel
(что бы это значило?)
Скрыть Excel совсем, а отображать только работающие с Excel UserForm?
 
Андрей, Вы правы, файл HideTitle удалил из предыдущего сообщения и подправил текст.
 
Владимир, по моему вы всё же зря удалили свой файл, за него отдельное спасибо. Он интересен тем, что режим "полного экрана" (без ленты, полосы заголовка, системного меню и кнопок) можно использовать не разворачивая Excel на весь экран (за счёт API изменения размера), в отличие от только VBA Application.DisplayFullScreen=True, который разворачивает Excel на весь дисплей.
Сейчас попробовал, при Application.DisplayFullScreen=True и последующем изменении значка - значок в вернем левом углу в этом режиме меняется, как и хотел Lock.
Только вот с лентой работать нельзя, может его и такой вариант устроит.
 
Application.DisplayFullScreen=True восстанавливается по ESC
Взял файл Ron de Bruin, добавил код из первого сообщения, добавил отключение Ribbon, получилось без ленты со своим значком. Может, так и сойдет.
Изменено: ZVI - 07.11.2013 05:43:20 (Обновил приложенный файл)
 
Как вариант (без изменения Ribbon, по существу в этом нет необходимости)
Изменено: anvg - 07.11.2013 06:23:52
 
Здравствуйте Владимир, anvg.
Извиняюсь, что рано ушел :D, самое вкусное было без меня.
Мне на работу к 9, к сожалению  ;).
Спасибо за решения, они мне помогли сделать свой вариант (рабочий).
По поводу отключения Ribbon - вы правы, без этого нет смысла. В моей программе главное окно, т.е. сама книга выглядит как системная форма. Теперь с правильным отображением иконок. Огромное спасибо вам!!!
Иногда только промахнувшись, понимаешь как ты попал.
 
Цитата
В моей программе главное окно, т.е. сама книга выглядит как системная форма.
напомнило это

Изменено: pharmaprofi - 07.11.2013 10:35:23
 
Хорошо, что не это.
Главное, вы не знаете, что требовалось, а уже смеетесь.
Поверьте, любознательность и настойчивость приводят к быстрым результатам...  ;)
Жаль катринка не клеется, что-то...
Изменено: Эмир Гасанов - 07.11.2013 11:15:05
Иногда только промахнувшись, понимаешь как ты попал.
 
Владимир, Андрей и всем кто читает -  здравствуйте.
Еще одна не стыковка.
Когда файл с иконкой перемещают и иконка недоступна (для вызова из папки), я пытаюсь вызвать системную иконку для формы, но системная иконка не вызывается. Подскажите, пожалуйста, что не так делаю, может можно как-то иконку в программу воткнуть на какой-нибудь лист и оттуда вызывать?

Если кто-то еще может подсказать - буду признателен.
Изменено: Эмир Гасанов - 08.11.2013 19:14:12
Иногда только промахнувшись, понимаешь как ты попал.
 
Я нашел ошибку. Всем спасибо.
См. файл - окончательный.
Иногда только промахнувшись, понимаешь как ты попал.
Страницы: 1
Читают тему
Наверх