ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ВСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ срСдствами WIN 32 API

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…, поэтому ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для описания элСмСнтов мСню ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ описания ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню (простом Ρ€Π΅ΠΆΠΈΠΌΠ΅, «simple mode») строка состояния Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ для отобраТСния простой строки тСкста. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ отобраТСния состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ состояния отобраТаСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΊΠΎΠ½, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ВСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ срСдствами WIN 32 API (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • 1. Π ΠΠ‘ΠžΠ’Π Π‘ Π€ΠΠ™Π›ΠΠœΠ˜
    • 1. 1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
    • 1. 2. Π—Π°ΠΏΠΈΡΡŒ ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
  • 2. Π­Π›Π•ΠœΠ•ΠΠ’Π« ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π¬Π‘ΠšΠžΠ“Πž Π˜ΠΠ’Π•Π Π€Π•Π™Π‘Π
    • 2. 1. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ мСню
    • 2. 2. Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния
  • БПИБОК Π˜Π‘ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠΠΠžΠ™ Π›Π˜Π’Π•Π ΠΠ’Π£Π Π«+ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Бмысл Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависит ΠΎΡ‚ Π΄Π΅ΠΉΡΡ‚вия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π°Π΄ элСмСнтом мСню. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля fMask прСдставляСт собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ констант ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π‘ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ MIIM_CHECKMARKS hbmpChecked ΠΈ hbmpUnchecked МИМ DATA dwItemData MIIMJD wID МИМ STATE fState МИМ SUBMENU hsubMenu МИМ TYPE fType ΠΈ dwTypeData

2.

2. Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ состояния (status bar) — ΠΎΠΊΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, часто Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НаиболСС частоС использованиС строки состояния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ описания ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΏΡ€ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Когда мСню Π½Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚риваСтся, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ состояния ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… тСкстовых процСссоров часто отобраТаСтся Ρ‚Π°ΠΊΠΆΠ΅ тСкущая страница, строка, столбСц.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° состояния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…, поэтому ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для описания элСмСнтов мСню ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ описания ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню (простом Ρ€Π΅ΠΆΠΈΠΌΠ΅, «simple mode») строка состояния Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ для отобраТСния простой строки тСкста. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ отобраТСния состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ состояния отобраТаСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΊΠΎΠ½, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… называСтся «Ρ‡Π°ΡΡ‚ΡŒΡŽ» строки статуса. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ строки состояния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана ΠΊΠ°ΠΊ ниша с Ρ€Π°ΠΌΠΊΠΎΠΉ, которая выглядит приподнятой Π½Π°Π΄ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΊΠ½Π° строки состояния, ΠΈΠ»ΠΈ Π±Π΅Π· Ρ€Π°ΠΌΠΊΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ состояния Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ часы ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прогрСсса. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ строки состояния ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π² Ρ€Π΅ΠΆΠΈΠΌ отобраТСния состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ строка состояния сохраняСт ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ скрытых ΠΎΠΊΠΎΠ½ Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ, ΠΊΠ°ΠΊ отобраТаСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΎΠΊΠΎΠ½.

Для создания строки состояния Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° функция CreateStatusWindow:

hwndStatusBar = CreateStatusWindow (

WS_CHILD — WS_VISIBLE — WS_CLIPSIBLINGS — CCS_BOTTOM,

" Ready", hwndParent, 2

);

Π­Ρ‚Π° функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CreateWindow, которая создаСт Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΠΊΠ½ΠΎ с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ hwndParent, с Ρ‚Скстом ΠΎΠΊΠ½Π° «Ready» (этот тСкст отобраТаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠΊΠ½Π΅ строки состояния), ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ€Π°Π²Π½Ρ‹ΠΌ 2.

Π€Π»Π°Π³ΠΈ стиля ΠΎΠΊΠ½Π° Π·Π°Π΄Π°Π½Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅.

Когда Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ строки состояния измСняСт Ρ€Π°Π·ΠΌΠ΅Ρ€ (ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сообщСния WM_SIZE), строка состояния Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅ΡΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ПанСль инструмСнтов измСняСт Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ TB_AUTOSIZE. Π£ ΡΡ‚Ρ€ΠΎΠΊΠΈ статуса Π½Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ сообщСния. ВмСсто Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

int cxParent = LOWORD (lParam);

int cyParent = HIWORD (lParam);

int x, y, cx, cy;

RECT rWindow;

// ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ высоту ΠΎΠΊΠ½Π° строки состояний Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

GetWindowRect (hStatus, &rWindow);

cy = rWindow. bottom — rWindow. top;

x = 0;

y = cyParent — cy;

cx = cxParent;

MoveWindow (hStatus, x, y, cx, cy, TRUE);

cx=LOWORD (lParam);

pParts[0]= cx-200;

pParts[1]= cx-100;

pParts[2]= cx;

SendMessage (hStatus, SB_SETPARTS, 3, (LPARAM)pParts);

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ сохраняСт высоту строки состояния Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

Π“Π°Π½Π΅Π΅Π² Π . М. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ срСдствами Win32 API.

ΠžΡ„ΠΈΠ½ΠΎΠ³Π΅Π½ΠΎΠ² К.Π“. WIN32. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования. — Πœ.:Π”ΠΈΠ°Π»ΠΎΠ³-ΠœΠΈΡ„ΠΈ, 2006.

ΠŸΠ΅Ρ‚Π·ΠΎΠ»Π΄ Π§. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 95. Π’ΠΎΠΌ I. — BHV-Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³.: Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 1995.

РумянцСв Π›. Π’. Азбука программирования Π² WIN32 API.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Π .М. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ срСдствами Win32 API.
  2. ΠžΡ„ΠΈΠ½ΠΎΠ³Π΅Π½ΠΎΠ² К.Π“. WIN32. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования. — Πœ.:Π”ΠΈΠ°Π»ΠΎΠ³-ΠœΠΈΡ„ΠΈ, 2006.
  3. Π§. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 95. Π’ΠΎΠΌ I. — BHV-Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³.: Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 1995.
  4. Π›.Π’. Азбука программирования Π² WIN32 API.
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜