Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Microsoft Visual C++ ΠΈ MFC. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 95 ΠΈ Windows NT. Π§Π°ΡΡ‚ΡŒ 2Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 40

Автор АлСксандр Π€Ρ€ΠΎΠ»ΠΎΠ²

ΠœΠ΅Ρ‚ΠΎΠ΄ SetIndicators Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ строковыС рСсурсы, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ состояния:

BOOL SetIndicators(const UINT* lpIDArray, int nIDCount);

Π§Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpIDArray, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ SetIndicators, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния. ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² массивС lpIDArray, задаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ nIDCount.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для опрСдСлСния количСства элСмСнтов массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

nIDCount = sizeof(indicators)/sizeof(UINT);

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ indicators прСдставляСт массив ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния.

Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ SetIndicators Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ошибки, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ SetIndicators Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Когда ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ созданы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… характСристики, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ SetPaneInfo:

void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth);

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ nIndex опрСдСляСт порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния ΠΈΠ»ΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π΅Π³ΠΎ индСкс. Π₯арактСристики этого ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

ΠœΠ΅Ρ‚ΠΎΠ΄ SetPaneInfo позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ располоТСниС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ nID. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetItemID. ΠœΠ΅Ρ‚ΠΎΠ΄ GetItemID Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° с индСксом nIndex:

UINT GetItemID(int nIndex) const;

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ опСрация выполняСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° CommandToIndex. ΠœΠ΅Ρ‚ΠΎΠ΄ CommandToIndex Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ nIDFind. Если ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅Π²Π΅Ρ€Π½ΠΎ, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1:

int CommandToIndex(UINT nIDFind) const;

ПослС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ отступлСния вСрнСмся ΠΊ рассказу ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SetPaneInfo.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ nIndex ΠΈ nID, опрСдСляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ nStyle ΠΈ cxWidth. Π’ качСствС nStyle ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π˜Π›Π˜.

Атрибут ОписаниС SBPS_NOBORDERS Π£Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° SBPS_POPOUT ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ Ρ€Π°ΠΌΠΊΠ° Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° создаСт Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ располоТСн Π² ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½ΠΈΠΈ. Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ SBPS_POPOUT, Ρ€Π°ΠΌΠΊΠ° измСняСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ располагаСтся Π²Ρ‹ΡˆΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ уровня ΠΏΠ°Π½Π΅Π»ΠΈ состояния SBPS_DISABLED Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, Ρ‚ΠΎ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ тСкст ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ строкового рСсурса SBPS_STRETCH Один ΠΈΠ· ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ свой Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π°. Атрибут SBPS_STRETCH ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π±ΠΎΡ€Π° этого ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° SBPS_NORMAL Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ cxWidth опрСдСляСт ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Когда Π²Ρ‹ создаСтС панСль состояния ΠΈ устанавливаСтС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄ SetIndicators, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² опрСдСляСтся автоматичСски исходя ΠΈΠ· ΡˆΠΈΡ€ΠΈΠ½Ρ‹ тСкста ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ SetIndicators, содСрТит константу ID_SEPARATOR, Ρ‚ΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠ°Π½Π΅Π»ΠΈ состояния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ SBPS_NOBORDERS ΠΈ SBPS_STRETCH.

Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ характСристики ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetPaneInfo. Он позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΡΡ‚ΠΈΠ»ΡŒ ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° с индСксом nIndex:

void GetPaneInfo(int nIndex, UINT& nID, UINT& nStyle, int& cxWidth) const;

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записываСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ссылка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ nID, Π½Π°Π±ΠΎΡ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… внСшний Π²ΠΈΠ΄ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° – Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ nStyle, Π° ΡˆΠΈΡ€ΠΈΠ½Π° – Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ cxWidth.

Если Π²Π°ΠΌ трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΈΠ»ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ управлСния, Ρ‚ΠΎ вмСсто ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² GetPaneInfo ΠΈ SetPaneInfo Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса CStatusBar – ΠΌΠ΅Ρ‚ΠΎΠ΄ GetPaneStyle ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ SetPaneStyle.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСкста Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния

Для измСнСния тСкста Π² самом ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ID_SEPARATOR, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ SetWindowText. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² классС CWnd ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ класс ΠΏΠ°Π½Π΅Π»ΠΈ состояния наслСдуСтся ΠΎΡ‚ класса CWnd. Π‘Ρ‚Ρ€ΠΎΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ΠΎ вывСсти Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния, слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpszString:

void SetWindowText(LPCTSTR lpszString);

ΠœΠ΅Ρ‚ΠΎΠ΄ SetWindowText измСняСт тСкст Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния, пСрСдавая Π΅ΠΌΡƒ сообщСниС WM_SETTEXT. Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ°Π½Π΅Π»ΠΈ состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ID_SEPARATOR, отличаСтся ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния. Π’ Π½Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ подсказки для Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… строк мСню, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях. ЀактичСски, этот ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC для отобраТСния своСго состояния ΠΈΠ»ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ… подсказок.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ MFC ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ тСкст ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, нСпосрСдствСнно пСрСдавая ΠΎΠΊΠ½Ρƒ ΠΏΠ°Π½Π΅Π»ΠΈ состояния сообщСниС WM_SETTEXT. ΠžΡ‚ΡΡŽΠ΄Π°, кстати, слСдуСт Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΡ‚Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ SetWindowText, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π΅Π· вашСго Π²Π΅Π΄ΠΎΠΌΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ‰Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ класса CStatusBar собствСнный класс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для сообщСния WM_SETTEXT. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСния WM_SETTEXT ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² особых случаях.

Если Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² самом ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅, Π½ΠΎ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… ΠΏΠ°Π½Π΅Π»ΠΈ состояния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ SetPaneText, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² классС CStatusBar:

BOOL SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);

ΠœΠ΅Ρ‚ΠΎΠ΄ SetPaneText Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ с индСксом nIndex тСкст, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ lpszNewText. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ bUpdate позволяСт сразу ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Если bUpdate содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TRUE, Ρ‚ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ пСрСрисован.

ВСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetPaneText, Ρ‚Π°ΠΊΠΆΠ΅ входящСго Π² класс CStatusBar.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ измСнСния ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния основан Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сообщСния ON_UPDATE_COMMAND_UI. Π’ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ простаиваСт, сообщСниС ON_UPDATE_COMMAND_UI пСрСдаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ для всСх ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ состояния. Напомним, Ρ‡Ρ‚ΠΎ сообщСниС ON_UPDATE_COMMAND_UI Ρ‚Π°ΠΊΠΆΠ΅ рассылаСтся для всСх строк мСню ΠΈ всСх ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния прилоТСния.

ИмСна для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² сообщСния ON_UPDATE_COMMAND_UI ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· строки OnUpdate ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, сообщСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

afx_msg void OnUpdateCtrlName(CCmdUI* pCmdUI);

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ сообщСния ON_UPDATE_COMMAND_UI Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ pCmdUI пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса CCmdUI. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса CCmdUI прСдставляСт ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ°Π½Π΅Π»ΠΈ состояния.

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ON_UPDATE_COMMAND_UI Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ для обновлСния Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строк мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния

Π’ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния ON_UPDATE_COMMAND_UI Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ SetText класса CCmdUI. Новый тСкст для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lpszText ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SetText:

virtual void SetText(LPCTSTR lpszText);

ΠœΠ΅Ρ‚ΠΎΠ΄ SetText Π½Π΅ выполняСт автоматичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сами ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста ΠΈ Π² случаС нСобходимости ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SetPaneInfo.

Π’ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния ON_UPDATE_COMMAND_UI ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π’ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ тСкст Π½Π΅ отобраТаСтся. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ , ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сообщСния Π½Π°Π΄ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Enable.

ΠœΠ΅Ρ‚ΠΎΠ΄ Enable, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ SetText, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² классС CCmdUI ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ:

virtual void Enable(BOOL bOn = TRUE);

ЕдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° bOn Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ состояниС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Если Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° bOn ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TRUE ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Enable Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС – тСкст Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° отобраТаСтся. Если Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ bOn ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE, Ρ‚ΠΎΠ³Π΄Π° выполняСтся Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΏΠ°Π½Π΅Π»ΠΈ состояния

Если Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния выполняСтся ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ»ΠΈ сохранСниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎΠ³Π΄Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ progress bar. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ смоТСтС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСсса.

МногиС офисныС прилоТСния, ΠΈ сама срСда Microsoft Visual C++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ панСль состояния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сохраняСтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² тСкстовом процСссорС Microsoft Word, Ρ‚ΠΎ Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния отобраТаСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ progress bar, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ процСсс сохранСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.