Cum de a schimba culoarea de fundal a ferestrei în mfc - totul despre ea și programare

Pentru a modifica culoarea de fundal pentru obiectele CView, CFrameWnd sau CWnd, trebuie să procesați mesajul WM_ERASEBKGND. Exemplul de mai jos arată cum se face acest lucru.







Cod exemplu

Pentru a schimba culoarea de fundal a ferestrei pentru CMDIFrameWnd, trebuie să creați o subclasă (subclasă) a ferestrei clientului într-o interfață cu mai multe documente (MDI) (fereastra din zona de client CMDIFrameWnd) și procesa mesajul WM_ERASEBKGND. Pentru mai multe informații despre subclasarea ferestrei MDICLIENT, consultați articolul din Baza de cunoștințe Microsoft:

Q129471 Subclasa (subclasa) MDIClient în MFC

Pentru a schimba culoarea de fundal slientskogo MDI fereastra (client zona CMDIFrameWnd), efectuați următoarele etape utilizând expertul:

  1. Folosind ClassWizard, creați o clasă generală CWnd.
  2. În clasa CMainFrame, creați o variabilă CWnd de tip CWnd de la pasul 1.
  3. Apelul funcției de clasă, după clasa de baza CMainFrame OnCreate CMDIFrameWnd :: OnCreate (), se adaugă un SubclassWindow apel (). De exemplu:

m_hWndMDIClient este o variabilă membră CMDIFrameWnd care conține mânerul ferestrei client MDI. De asemenea, înlocuiți "m_wndNewClient" cu variabila creată în etapa 2.

NOTĂ: Înlocuiți "CNewClientWnd" cu numele clasei dvs.

Puteți vedea informații despre subclasarea ferestrelor utilizând MFC în următoarele materiale:

  • "Clasa Biblioteca de referință" pentru funcțiile CWnd :: SubclassWindow (), CWnd :: GetSuperWndProcAddr () și CWnd :: SubclassDlgItem ()
  • Căutați în Baza de cunoștințe Microsoft pentru următoarele cuvinte cheie:

    subclasa și proba și mfc

  • Vizualizați exemplul MFC CTRLTEST care vine cu Visual C ++ pentru Windows și Visual C ++ 32-bit Edition.
  • Vedeți articolul intitulat "Subclasarea Windows cu Microsoft Foundation Class Library" pe CD-ul Microsoft Developer Network (MSDN).
  • Împingeți mesajul WM_ERASEBKGND pentru clasa universală CWnd folosind codul de mai sus.






  • Pentru a schimba culoarea de fundal a unui obiect CFormView, pot fi tratate WM_ERASEBKGND mesaj și utilizând codul de mai sus sau să proceseze mesajul WM_CTLCOLOR.

    Dacă aplicația care a creat fereastra este o aplicație Windows, numele "ntvdm" va fi returnat. Pentru a obține numele real al fișierului, este necesar să se producă aplicarea Win16, care va provoca GetModuleFileName () și trece numele de fișier înapoi în programul folosind Kako.

    Funcțiile dialogurilor comune pentru actualizarea listei de fișiere și directoare sunt construite în dialoguri comune, astfel încât acestea nu sunt disponibile pentru aplicațiile care funcționează cu subrutine de dialog comune. Aceste funcții funcționează numai atunci când utilizatorul face dublu clic pe listă. Următorul cod utilizează butonul.

    Aceasta este o funcție foarte simplă care creează o regiune dintr-un fișier bitmap (.bmp). De asemenea, în exemplu, este furnizată o versiune îmbunătățită a acestei funcții, care vă permite să specificați masca imaginii. Compilator: Visual C ++ 4-6 Funcția se numește CreateRgn și are doi parametri: szFileName - numele fișierului care conține mașina.

    Dacă trebuie să faceți o fereastră statică din aplicația dvs. (când utilizatorul nu poate modifica dimensiunea și locația ferestrei principale a aplicației). apoi lipiți următorul cod în proiectul dvs. int CMainFrame :: OnCreate (LPCREATESTRUCT lpCreateStruct)





    Articole similare

    Trimiteți-le prietenilor: