Щоб змінити колір фону для об'єктів CView, CFrameWnd, або CWnd, необхідно обробити повідомлення WM_ERASEBKGND. Приклад, наведений нижче, демонструє, як це зробити.
приклад коду
Для зміни фонового кольору вікна для CMDIFrameWnd, необхідно створити підклас (subclass) клієнтського вікна в багатодокументна інтерфейсі (MDI) (вікно в клієнтської області CMDIFrameWnd) і обробити повідомлення WM_ERASEBKGND. Більш докладно про сабклассінге вікна MDICLIENT дивіться статтю з Microsoft Knowledge Base:
Q129471 Сабклассінг (SubClass) MDIClient в MFC
Для зміни фонового кольору сліентского вікна MDI (клієнтська область CMDIFrameWnd), виконайте наступні кроки, використовуючи візард:
- За допомогою ClassWizard створіть універсальний клас CWnd.
- У класі CMainFrame створіть змінну-челен типу CWnd з пункту 1.
- У функції OnCreate класу CMainFrame після виклику базового класу CMDIFrameWnd :: OnCreate (), додайте виклик SubclassWindow (). наприклад:
m_hWndMDIClient це змінна-член CMDIFrameWnd яка містить дескриптор клієнтського вікна MDI. Так само, замініть "m_wndNewClient" тієї змінної, яку Ви створили в пункті 2.
ЗАУВАЖЕННЯ: Замініть "CNewClientWnd" на ім'я Вашого класу.
Інформацію про сабклассінге вікон за допомогою MFC можна подивитися в наступних матеріалах:
- "Class Library Reference" для функцій CWnd :: SubclassWindow (), CWnd :: GetSuperWndProcAddr (), і CWnd :: SubclassDlgItem ()
subclass and sample and mfc
Щоб змінити фоновий колір об'єкта CFormView, можна обробити повідомлення WM_ERASEBKGND і використовувати код, наведений вище, або обробити повідомлення WM_CTLCOLOR.
Якщо додаток, яке створило вікно є Windows додатком, то буде повернуто ім'я "ntvdm". Щоб отримати фактичне ім'я файлу, то необхідно породити додаток Win16, яке викликатиме GetModuleFileName () і передавати ім'я файлу назад в Вашу програму за допомогою како.
Функції загальних діалогів для оновлення списку файлів і директорій є вбудованими в загальні діалоги, тому недоступні для додатків, що працюють з підпрограмами загальних діалогів. Ці функції спрацьовують тільки коли користувач зробить подвійний клік по списку. Наступний код використовує кнопк.
Це дуже проста функція, що створює регіон з bitmap (.bmp) файлу. Так само в прикладі представлений вдосконалений варіант цієї функції, що дозволяє задавати маску зображення. Компілятор: Visual C ++ 4-6 Функція називається CreateRgn і має два параметри: szFileName - ім'я файлу, що містить кар.
Якщо у Вас виникла потреба зробити статичну вікно у свого застосування (коли користувач не може змінити розмір і місце розташування головного вікна програми). то вставте наступний код в свій проект. int CMainFrame :: OnCreate (LPCREATESTRUCT lpCreateStruct)