![]() |
#21 |
NavAx
|
Короче, раз никто толком WinAPI не знает, будем учить.
![]() В общем, рецепт оказался универсальный. Можно сменить как кисть фона (как в моем примере), так и собственно, и значок (ессно, его придется загрузить перед этим). Вкратце: PHP код:
PHP код:
недостаток у этого способа только один - при злоупотреблении сменой фона исходные кисти, которой был он был заполнен до очередной смены, не будут автоматом удалены при завершении приложения(что к WinNT-based не относится). Впрочем, это легко исправить. Достаточно удалять старые кисти/иконки/что ещё вызовом DeleteObject. (Upd: все-таки приделал. Чтоб всё было по-правилам). Пишу я, значит, это, а Аксапта имеет у меня такой гламурный-гламурный вид... ![]() ![]() ![]() P.S. Ну, блин, ну нафига же смайлики разворачивать в X++ коде, а, Mazzy? |
|
|
За это сообщение автора поблагодарили: mazzy (15). |
![]() |
#22 |
Участник
|
Только лицензия стала прямоугольная
![]()
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#23 |
NavAx
|
Как это?
У меня она как была квадратная, так и осталась. Хмм... разве что если включены разнообразные XP-извращения вроде полукруглых окошек, такое может быть... А в таком случае - ССЗБ. ![]() ![]() ![]() А вообще - спасибо за идею насчет значков Ruff. Идея до конца дня лежала где-то на периферии сознания, когда вечером для разминки решил таки попробовать её реализовать. |
|
![]() |
#24 |
Участник
|
Душа тянется к прекрасному
![]()
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#25 |
NavAx
|
![]()
А вообще - если лицензия стала прямоугольной - закажите у Columbus'а новую.
Или подклейте скотчем пару полосок 10x2 см к уже существующей. ![]() ![]() |
|
|
За это сообщение автора поблагодарили: blokva (1). |
![]() |
#26 |
Участник
|
Нет, надо в Microsoft устроить новый тестовый забег на предмет страшного бага.
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#27 |
Участник
|
Она зараза еще и крупнее. Вот к чему ведет тяга к прекрасному
![]()
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#28 |
Участник
|
Цитата:
Изначально опубликовано Maximin
P.S. Ну, блин, ну нафига же смайлики разворачивать в X++ коде, а, Mazzy? |
|
![]() |
#29 |
Пенсионер
|
Цитата:
Изначально опубликовано mazzy
Спасибо, записал в ТЗ на доработку форума.
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#30 |
Участник
|
да уже давно.
|
|
![]() |
#31 |
Пенсионер
|
Цитата:
Изначально опубликовано mazzy
да уже давно. ![]()
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#32 |
Пенсионер
|
Вот в файле картинка
не вставляется почему-то
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#33 |
Пенсионер
|
Меняем стандартную иконку
Возвращаясь к теме по причине того, что периодически возникают проблеммы с "перепутыванием" открытых экземпляров...а это раздражает...оно меня раздражает (с) Жванецкий
Идея и подсказка Maximin, за что большой респект (к сожалению только 1) дополнительно к методу WinAPI::setClassLong() добавляем метод в WinGDI PHP код:
![]() ну и собсно меняем: PHP код:
ззы: у себя я меняю автоматически при входе в опре деленный экземпляр аксапты путем указания и последующей обработки необходимой команды в поле "Startap Command" в конфигурационной утилиты. Если интересует могу рассказать как. Добавил скриншотик, как это выглядит в таскбаре, по порядку: тестовая, рабочая, локальная
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 08.07.2006 в 14:34. |
|
|
За это сообщение автора поблагодарили: Antant (1). |
![]() |
#34 |
Участник
|
Пытаюсь поставить свою строку в заголовке окна в начале работы системы - не получается. Происходит какое-то обновление всего окна сразу после загрузки системы. Можете подсказать метод, который вызывается после такого обновления, чтобы название окна не менялось после того, как я его изменю.
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
![]() |
#35 |
Пенсионер
|
Цитата:
Сообщение от Antant
Пытаюсь поставить свою строку в заголовке окна в начале работы системы - не получается. Происходит какое-то обновление всего окна сразу после загрузки системы. Можете подсказать метод, который вызывается после такого обновления, чтобы название окна не менялось после того, как я его изменю.
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#36 |
Участник
|
\Classes\Info\onEventGoingIdle
X++: //Event fired by kernel when the client goes idle. //It is not fired during CTRL-Break dialog. void onEventGoingIdle() { this.operationProgressClear(); this.endLengthyOperation(true); /// if(strLwr(curUserID())!='admin') TitleChanger::changeTitle(); } X++: static void changeTitle() { #define.WM_SETTEXT(0x000C) str caption; str prefix=new Session().AOSName()+": "; int defWindowProc( int _handle, int _msg, int _wParam, str _lParam ) { int ret; DLL _DLL = new DLL('USER32'); DLLFunction _defwproc = new DLLFunction(_DLL, 'DefWindowProcA'); ; _defwproc.returns(ExtTypes:: DWord); // LRESULT _defwproc.arg(ExtTypes:: DWord); // handle window _defwproc.arg(ExtTypes:: DWord); // message _defwproc.arg(ExtTypes:: DWord); // wparm _defwproc.arg(ExtTypes::String); // lparm return _defwproc.call(_handle, _msg, _wParam, _lParam); } ; caption = winapi::getWindowText(infolog.hWnd()); if(!StrUtils::startsWith(caption, prefix)) defWindowProc(infolog.hWnd(), #WM_SETTEXT, 0, prefix + caption); } X++: // строка _s начинается на _suffix static boolean startsWith(str _s, str _prefix) { return strLen(_s)>=strLen(_prefix) && subStr(_s, 1, strLen(_prefix))==_prefix; } |
|
|
За это сообщение автора поблагодарили: blokva (1), gl00mie (1), Antant (1), Sergey Petrov (1), kpoxa (0). |
![]() |
#37 |
Banned
|
Для справки: в 4.0 больше не работает. Теперь окно MDIClient состоит из Navigation Pane и "серого квадрата", который, очевидно, каждый раз заливается заново в .paint(). Дочерние окна прорисовываются не на "заднем фоне" родительского окна, а поверх этого квадрата. А жаль.
|
|
![]() |
#38 |
Пенсионер
|
Цитата:
Ос-с-сина нада... ![]()
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#39 |
Пенсионер
|
Цитата:
![]() Небольшое уточнение в "Диспетчере задач" показывается измененная иконка!!! ![]()
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#40 |
Участник
|
Ни у кого не получилось решить задачку со сменой значка 4.0/5.0 ?
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
Теги |
ax2009, axapta, download, faq, winapi, база данных, внешний вид, законченный пример, иконка, интерфейс, полезное, фон |
|
|