MFC 编写自己的特色启动窗体...........

简介:    今天看到  VC上面有个能增加启动窗体的向导  不过那个利用向导做出来启动界面代码多 我们根本无从修改  于是我摸索着写了个  启动窗体 基于对话框的启动界面  界面 是一块一块的慢慢显示 .
 

 今天看到  VC上面有个能增加启动窗体的向导  不过那个利用向导做出来启动界面代码多 我们根本无从修改  于是我摸索着写了个
 启动窗体 基于对话框的启动界面  界面 是一块一块的慢慢显示 ...  

  涉及到的函数 : 
       srand((unsigned)time(NULL));  //以时间为轴随机    
       rand()产生  随机数 
       CDC::StretchBlt()  //从源DC拷贝位图到目的DC  有必要可以对位图进行拉伸和  压缩
       Cwnd::CreateEx()创建一个 窗体 
       AfxRegisterWndClass()函数返回一个已经注册了的窗口类的名字
       CDC::CreateCompatibleDC()创建和某DC相兼容的DC
       CWnd::CenterWindow()窗体居中
       CWnd::UpdateWindow()更新窗体  这时候会 发送WM_PAINT消息 导致 OnPaint函数的调用

 

下面是代码具体 代码  首先创建一个  MFC基于对话框的应用程序  (一下是步骤 )
                   
                   
     1.    定义一个 CHelloWnd 类从CWnd 类派生来    
 
   
     2.    CHelloWnd 类添加成员  和函数 
                public:
            void  CreateHellWindow();
               
                private:
  CBitmap bit;
  BITMAP info; 
          

     3.    以上添加完成之后增加  WM_PAINT 消息响应函数 void  OnPaint()  函数     增加一副位图资源  IDB_BITMAP1; 
          
          
         // 函数1构造函数
         CHelloWnd::CHelloWnd()  
         {
        bit.LoadBitmap(IDB_BITMAP1);  //加载位图 
 bit.GetBitmap(&info);  //获得位图信息 BITMAP
        }

      


      // 函数2   CreateHellWindow()
      void  CHelloWnd::CreateHellWindow()
        {
 this->CreateEx(0,
        AfxRegisterWndClass(0,LoadCursor(NULL,IDC_ARROW)),  //注册窗口类
        Hello Window!",  //标题
        WS_POPUPWINDOW,//style
        0,0,
        info.bmWidth,// 宽
        info.bmHeight,//高
        NULL,NULL,NULL);
   
        }
 

        // 函数3  OnPaint()  函数  


       
void CHelloWnd::OnPaint()   //调用CWnd类的  UpDateWindow会发送 WM_PAINT消息 

 CPaintDC dc(this);
 CDC dcCom;
 dcCom.CreateCompatibleDC(&dc); //创建兼容DC
 dcCom.SelectObject(&bit); //将位图选到兼容DC中 


 int x=0,y=0;    //随机坐标 DC绘制时候的坐标 都是相对于 客户坐标 而不是屏幕坐标
 int  num=0 ;//用于记录绘制次数 到100次推出 while
 int  check[10][10]={0};  //用于判断100个格子是否全部绘制
 int stepx=info.bmWidth/10;  //设置绘制的每一个小格子的高度
 int stepy=info.bmHeight/10;  //设置绘制的每一个小格子的宽度 
 srand((unsigned)time(NULL));  //以时间为轴随机 
 while(1)
 { 
  x=rand()%10;    //产生0-9之间的数字
  y=rand()%10;  //产生0-9之间的数字
        if(check[x][y])  //如果已经绘制直接进入下一个循环
   continue; 
 dc.StretchBlt(x*stepx,y*stepy,stepx,stepy,&dcCom,x*stepx,y*stepy,stepx,stepy,SRCCOPY);
  
        check[x][y]=1  ;
  num++;
  if(num>=100)
   break ;
        Sleep(50);  
 }
}

 


以上完成之后在  APP类中的  初始化函数    CMyDlg dlg; 对话框生成之前增加如下代码   


        
        CHelloWnd *wnd=new CHelloWnd;
 wnd->CreateHellWindow(); 
 wnd->ShowWindow(SW_SHOW);  //显示窗体
 wnd->CenterWindow(); //窗体居中
 wnd->UpdateWindow(); //发送WM_PAINT 消息 


     到这里一个 启动窗体就做好了 大致就是这样

 

  

目录
相关文章
|
5月前
10 MFC - 对话框应用程序框架介绍
10 MFC - 对话框应用程序框架介绍
44 0
|
5月前
|
C++ Windows
09 MFC - 创建基于对话框的 MFC 应用程序框架
09 MFC - 创建基于对话框的 MFC 应用程序框架
44 0
|
2月前
MFC对话框构架程序
MFC对话框构架程序
14 0
|
2月前
|
存储 API Windows
新建MFC桌面应用程序
新建MFC桌面应用程序
9 0
|
2月前
MFC编写DLL窗口功能代码
MFC编写DLL窗口功能代码
7 0
|
2月前
MFC应用程序对话框架构
MFC应用程序对话框架构
13 0
|
7月前
|
API C# 数据安全/隐私保护
C#之二十一 创建MDI应用程序和组件开发
C#之二十一 创建MDI应用程序和组件开发
65 0
|
程序员
MFC应用程序开发教程2——基于对话框编程
MFC应用程序开发教程2——基于对话框编程
122 1
MFC应用程序开发教程2——基于对话框编程
|
编译器 C# Windows
C# 编写 WinForm 窗体应用程序(第一期)
WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。
C# 编写 WinForm 窗体应用程序(第一期)
C#编写WinForm窗体应用程序(第四期)
在 C# 语言中 RadioButton 是单选按钮控件,多个 RadioButton 控件可以为一组,这一组内的 RadioButton 控件只能有一个被选中。
C#编写WinForm窗体应用程序(第四期)

热门文章

最新文章