#include<afxwin.h>
class MyApp:public CWinApp
{
public:
BOOL InitInstance();
};
MyApp theApp;
MyApp::InitInstance(){
CFrameWnd *pMainWnd=new CFrameWnd;
pMainWnd->Create(NULL,"Basic MFC Application");
pMainWnd->ShowWindow(m_nCmdShow);
pMainWnd->UpdateData();
m_pMainWnd=pMainWnd;
return TRUE;
}
在这段代码中,如果想改变WNDCLASS wc(窗口类)的属性,如窗口的背景颜色,窗口图标,窗口光标,应该怎么改,请教一下,谢谢!!

解决方案 »

  1.   

    你看看这个好了,复制到vc里看,注释写得比较清楚
    #include <afxwin.h>
    #include "Hello.h"CMyApp myApp;/////////////////////////////////////////////////////////////////////////
    // CMyApp member functionsBOOL CMyApp::InitInstance ()
    {
        m_pMainWnd = new CMainWindow;
        m_pMainWnd->ShowWindow (m_nCmdShow); //所有窗口对象共用的CWnd成员函数 m_nCmdShow-最小化、最大化、normal SW_SHOWNORMAL、SW_SHOWMAXIMIZED、SW_SHOWMINIMIZED
        m_pMainWnd->UpdateWindow (); //重新绘制窗口完成ShowWindow启动的作业
        return TRUE;
    }/////////////////////////////////////////////////////////////////////////
    // CMainWindow message map and member functionsBEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
        ON_WM_PAINT ()
    END_MESSAGE_MAP ()CMainWindow::CMainWindow ()
    {
        Create (NULL, _T ("The Hello Application"));//生成在屏幕上看到的窗口
    //CFrameWnd的Create原型:
    //BOOL Create(
    //LPCTSTR lpszClassName, 窗口基于WNDCLASS类的名称(NULL将创建一个基于由主结构注册的WNDCLASS类的默认框架窗口)
    //LPCTSTR lpszWindowName, 指定将在窗口的标题栏出现的文本 标题栏&边框   标题栏  图标&X  Sizing border 最小化按钮  最大化按钮
    //DWORD dwStyle = WS_OVERLAPPEDWINDOW, 窗口样式 |WS_VSCROLL |WS_HSCROLL 水平垂直滚动条 WS_OVERLAPPEDWINDOW=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX
    //const RECT& rect = rectDefault,
    //CWnd* pParentWnd = NULL,
    //LPCTSTR lpszMenuName = NULL,
    //DWORD dwExStyle = 0,
    } //CCreateContext* pContext = NULL);
    void CMainWindow::OnPaint () //在窗口客户区的中央位置绘制"Hello,MFC"
    {
        CPaintDC dc (this); //父:CDC CDC类封装了windows设备环境
        
        CRect rect; //OnPaint构造一个代表矩形的CRect对象,并调用CWnd::GetClientRect以使用窗口的客户区的坐标来初始化这个矩形
        GetClientRect (&rect);
    dc.SetTextColor(150); //Color
        dc.DrawText (_T ("Hello, MFC"), -1, &rect, //调用CDC::DrawText在窗口的客户区中显示"Hello,MFC"
            DT_SINGLELINE | DT_CENTER | DT_VCENTER);//指向待显示的字符串指针,字符串中的字符数(或者-1,如果字符串是以NULL字符终止的),指定格式矩形的一个RECT结构或者CRECT对象的地址,指定输出选项的标记
    }   //单行文本 垂直居中 水平居中
      

  2.   

    hello.h
    class CMyApp : public CWinApp //Hello应用程序类--CMyApp 父:CWinApp
    {
    public:
        virtual BOOL InitInstance (); //除非InitInstance创建一个窗口,否则应用程序是不会有窗口的
    }; //为应用程序提供一个自身初始化的机会class CMainWindow : public CFrameWnd //父:CFrameWnd 父:CWnd
    {
    public:
        CMainWindow ();protected:
        afx_msg void OnPaint ();
        DECLARE_MESSAGE_MAP ()
    };
      

  3.   

    我是想改变窗口背景的颜色,请教教!!
    还有请说说程序里的CPaintDC和CRect类有什么用,谢谢!!!!