m_wndStatusBar.SetWindowText("Process completed");
ΠΠ΅ΡΠΎΠ΄ OnMenuDirectADD_SUB ΠΊΠ»Π°ΡΡΠ° CStateWindowΠΠ΅ΡΠΎΠ΄ OnMenuDirectADD_SUB ΠΊΠ»Π°ΡΡΠ° CStateWindow Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ID_WORK_DISABLE_ADDSUB, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΌ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΈΠ· ΠΌΠ΅Π½Ρ Work ΡΡΡΠΎΠΊΠΈ Disable ADD SUB.
ΠΠ΅ΡΠΎΠ΄ OnMenuDisableADD_SUB ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ID_INDICATOR_ADD, Π° Π·Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ID_INDICATOR_ADD, ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ CommandToIndex:
int nIndex = m_wndStatusBar.CommandToIndex(ID_INDICATOR_ADD);
ΠΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ SetPaneStyle, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π°ΡΡΠΈΠ±ΡΡ SBPS_DISABLED:
m_wndStatusBar.SetPaneStyle(nIndex, SBPS_DISABLED);
ΠΠ΅ΡΠΎΠ΄Ρ OnMenuSwitchTEXT ΠΈ OnUpdateTEXT ΠΊΠ»Π°ΡΡΠ° CStateWindowΠΠ΅ΡΠΎΠ΄Ρ OnMenuSwitchTEXT ΠΈ OnUpdateTEXT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ID_INDICATOR_TEXT.
ΠΠ΅ΡΠΎΠ΄ OnMenuSwitchTEXT Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ID_WORK_ON_SWITCH_TEXT. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΈΠ· ΠΌΠ΅Π½Ρ Work ΡΡΡΠΎΠΊΠΈ Switch TEXT:
ON_COMMAND(ID_WORK_ON_SWITCH_TEXT, OnMenuSwitchTEXT)
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° OnMenuSwitchTEXT Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ»Π°Π³Π° bIndicatorTEXT. ΠΡΠ»ΠΈ ΡΠ»Π°Π³ bIndicatorTEXT ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ TRUE, ΡΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ OnMenuSwitchTEXT ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π½Π° FALSE ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ:
void CStateWindow::OnMenuSwitchTEXT() {
bIndicatorTEXT = !bIndicatorTEXT;
}
ΠΠ΅ΡΠΎΠ΄ OnUpdateTEXT ΠΊΠ»Π°ΡΡΠ° CStateWindow, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ON_UPDATE_COMMAND_UI ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° CStateWindow:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_TEXT, OnUpdateTEXT)
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ID_INDICATOR_TEXT. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ»Π°Π³Π° bIndicatorTEXT, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ OnMenuSwitchTEXT, ΠΌΠ΅ΡΠΎΠ΄ OnUpdateTEXT ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ Π»ΠΈΠ±ΠΎ ΡΡΡΠΎΠΊΡ TEXT, Π»ΠΈΠ±ΠΎ ΡΡΡΠΎΠΊΡ PIC:
void CStateWindow::OnUpdateTEXT(CCmdUI* pCmdUI) {
// Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ»Π°Π³Π° bIndicatorTEXT
// ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ID_INDICATOR_TEXT
// ΡΡΡΠΎΠΊΡ TEXT ΠΈΠ»ΠΈ PIC
if (bIndicatorTEXT) pCmdUI->SetText("TEXT"); // ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΡ TEXT
else pCmdUI->SetText("PIC"); // ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΡ PIC
// Π Π°Π·ΡΠ΅ΡΠ°Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅
pCmdUI->Enable();
}
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° pCmdUI ΠΌΠ΅ΡΠΎΠ΄Ρ OnUpdateTEXT ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° CCmdUI. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΡΡΠΎΠΊΡ ΠΌΠ΅Π½Ρ, ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ). Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ID_INDICATOR_TEXT.
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ SetText ΠΈ Enable ΠΊΠ»Π°ΡΡΠ° CCmdUI. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ ΡΠ½ΠΈΠΌΠ°ΡΡ Ρ Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ (Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π½Π΅Π΅ Π±ΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°).
ΠΠ΅ΡΠΎΠ΄ OnMenuExit ΠΊΠ»Π°ΡΡΠ° CStateWindowΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ±ΡΠ°Π² ΠΈΠ· ΠΌΠ΅Π½Ρ Work ΡΡΡΠΎΠΊΡ Exit. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ID_WORK_EXIT. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° ON_COMMAND ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° CStateWindow Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ OnMenuExit:
ON_COMMAND(ID_WORK_EXIT, OnMenuExit)
ΠΠ΅ΡΠΎΠ΄ OnMenuExit Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ DestroyWindow, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ CWnd Π΄Π»Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
DestroyWindow();
4. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ
Π 24 ΡΠΎΠΌΠ΅ ΡΠ΅ΡΠΈΠΈ βΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°β, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ MFC, Π²Ρ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΡΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ΡΡΠ² MFC AppWizard ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΠΊΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MFC AppWizard, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠΊΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ MFC. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΠΊΠ»Π°ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ Π½Π° ΡΠΈΡΡΡΡ Π²ΠΎΠ΄Ρ ΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π ΡΠΎΡΡΠ°Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² MFC Π²Ρ ΠΎΠ΄ΡΡ ΡΡΠ΄ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°, Π²ΡΠ±ΠΎΡ ΡΠ²Π΅ΡΠ°, Π²ΡΠ±ΠΎΡ ΡΡΠΈΡΡΠ° ΠΈ Ρ. Π΄. Π‘Ρ Π΅ΠΌΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.1.
ΠΠ»Π°ΡΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ CColorDialog ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ° CFileDialog ΠΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π° Π΄ΠΈΡΠΊΠ΅ CFindReplaceDialog ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π·Π°ΠΌΠ΅Π½Ρ CFontDialog ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡΡΠ° CPrintDialog ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠ΅ΡΠ°ΡΡ CPageSetupDialog ΠΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΡΠΌΠ°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ COleDialog, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ OLE. Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ OLE ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ COleDialog.
Π ΠΈΡ. 4.1. ΠΠ»Π°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ
ΠΠ»Π°ΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ afxdlgs.h. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» afxdlgs.h Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° #include:
// ΠΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ
#include <afxdlgs.h>
ΠΠ»Π°ΡΡ COleDialog ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ OLE, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ β afxodlgs.h .
ΠΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ°
Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ° , Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° CColorDialog, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ DoModal. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° CColorDialog ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
CColorDialog(COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL);
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ ΠΎΠΏΡΡΡΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ clrInit ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π΅Ρ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²Π΅ΡΠ°, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ dwFlags ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΡΠ»Π°Π³ΠΎΠ², ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ°. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎ ΡΡΠΈ ΡΠ»Π°Π³ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² 14 ΡΠΎΠΌΠ΅ βΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°β, Π² ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ CHOOSECOLOR.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pParentWnd ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° CColorDialog Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ dwFlags, Π²Ρ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ m_cc Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ dwFlags, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ m_cc. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ m_cc Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²Π½Π΅ΡΠ΅Π½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ°Π½Π΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° CColorDialog
Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ° Π½Π° ΡΠΊΡΠ°Π½, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ DoModal:
virtual int DoModal();
ΠΠΎΡΠ»Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Π½Π΅Π΅ ΡΠ²Π΅Ρ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ OK ΠΈΠ»ΠΈ Cancel Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠΎΠ³Π΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΌΠ΅ΡΠΎΠ΄ DoModal Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ IDOK ΠΈΠ»ΠΈ IDCANCEL, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π°ΠΆΠ°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
CColorDialog dlgColor;
int iResult;
iResult = dlgColor.DoModal();
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠ° Color (ΡΠΈΡ. 4.2). Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π½ΠΈΠΆΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈ Basic colors, ΡΠ°ΡΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ 48 ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ°. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²Π΅ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ²Π΅ΡΠΎΠ², ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ OK.
Π ΠΈΡ. 4.2. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Color
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°ΠΊΡΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° CColorDialog, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ²Π΅ΡΠ°, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠ°, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ GetColor ΠΊΠ»Π°ΡΡΠ° CColorDialog:
COLORREF GetColor() const;
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ COLORREF, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΡΠ²Π΅ΡΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Color, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄ΠΎ 16 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ². Π§ΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ°, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Define Custom Colors. ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Color ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ (ΡΠΈΡ. 4.3).