如何作应用程序的进入画面,急!

njjzhu 2002-05-16 05:37:32
在vc中,如何在应用程序框架显示之前全屏显示一幅画面。
谢谢
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
RodgerLiang 2002-05-16
  • 打赏
  • 举报
回复

步骤
1. 创建一个启动窗口类
1) 用C l a s s Wi z a r d创建一个从一般C W n d类派生的普通窗口类。
2) 添加Create( )成员函数到该类,在该函数中装入启动窗口中显示的位图,以及在屏幕中
央创建该窗口。用位图类装入该位图,当把位图画到屏幕上时,允许保留它自己的
调色板。
void CWzdSplash::Create(UINT nID)
{
m _ b i t m a p . L o a d B i t m a p E x ( n I D , FA L S E ) ;
int x = (::GetSystemMetrics (SM_CXSCREEN)-
m _ b i t m a p . m _ Wi d t h ) / 2 ;
int y = (::GetSystemMetrics (SM_CYSCREEN)-
m _ b i t m a p . m _ H e i g h t ) / 2 ;
CRect rect(x,y, x + m _ b i t m a p . m _ Wi d t h , y + m _ b i t m a p . m _ H e i g h t ) ;
C r e a t e E x ( 0 , A f x R e g i s t e r W n d C l a s s ( 0 ) ,"",
W S _ P O P U P | W S _ V I S I B L E | W S _ B O R D E R , r e c t , N U L L , 0 ) ;
}
3) 用C l a s s Wi z a r d添加一个W M _ PA I N T消息处理函数到该窗口类中,在这里用BitBlt( )把
位图绘制到屏幕上。
void CWzdSplash::OnPaint()
{
CPaintDC dc(this); // device context for painting
// get bitmap colors
CPalette *pOldPal =
d c . S e l e c t P a l e t t e ( m _ b i t m a p . G e t P a l e t t e ( ) , FA L S E ) ;
d c . R e a l i z e P a l e t t e ( ) ;
// get device context to select bitmap into
CDC dcComp;
d c C o m p . C r e a t e C o m p a t i b l e D C ( & d c ) ;
d c C o m p . S e l e c t O b j e c t ( & m _ b i t m a p ) ;
// draw bitmap
d c . B i t B l t ( 0 , 0 , m _ b i t m a p . m _ Width,m_bitmap.m_Height, &dcComp,0,0,SRCCOPY);
// reselect old palette
d c . S e l e c t P a l e t t e ( p O l d P a l , FA L S E ) ;
}
应用程序的名字和版权正好在应用
程序运行之前显示
4) 有关该启动窗口类的完备清单,参见本节的“清单—启动窗口类”。
2. 把启动窗口类插入到InitInstance( )中
1) 在应用程序类的InitInstance( )函数的开始处,创建该启动窗口类的一个实例:调用它
的Create( ),并强制它进行绘制。
CWzdSplash wndSplash;
w n d S p l a s h . C r e a t e ( I D B _ W Z D S P L A S H ) ;
w n d S p l a s h . U p d a t e Window(); //send WM_PA I N T
2) 因为启动窗口类创建在堆栈中,一旦InitInstance( )返回,该窗口将被自动销毁,因此,
如果应用程序花费大量时间进行初始化,则不必采用在应用程序中加延时的方法,使启动窗
口停留足够长的时间以确保读取显示的信息;如果应用程序花费很少时间进行初始化,或者
担心高速机器把启动窗口变成影像,添加下面代码行到InitInstance( )的某个地方以对应用程
序进行延时处理。
// add if splash screen too short
Sleep(2000); <<<<<<<
说明
■ 创建一个具有动感的启动窗口,从C A n i m a t e C t r l中派生启动窗口类。在Create( )中装入
一个. a v i文件,而不是一个位图文件,同时把窗口创建在屏幕中间。参见例4 3有关
C A n i m a t e C t r l类的详尽讨论。

清单—启动窗口类
#if !defined WZDSPLASH_H
#define WZDSPLASH_H
// WzdSplash.h : header file
/ /
#include "W z d B i t m a p . h”
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// CWzdSplash window
class CWzdSplash : public CWnd
{
// Construction
p u b l i c :
C W z d S p l a s h ( ) ;
// Attributes
p u b l i c :
// Operations
p u b l i c :
void Create(UINT nBitmapID);
// Overrides
// ClassWizard generated virtual function overrides
/ / { { A F X _ V I RT U A L ( C W z d S p l a s h )
/ / } } A F X _ V I RT U A L
// Implementation
p u b l i c :
virtual ~CWzdSplash();
// Generated message map functions
p r o t e c t e d :
/ / { { A F X _ M S G ( C W z d S p l a s h )
afx_msg void OnPaint();
/ / } } A F X _ M S G
D E C L A R E _ M E S S A G E _ M A P ( )
p r i v a t e :
CWzdBitmap m_bitmap;
} ;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
#include "WzdBitmap.h"
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// CWzdSplash window
class CWzdSplash : public CWnd
{
// Construction
p u b l i c :
C W z d S p l a s h ( ) ;
// Attributes
p u b l i c :
// Operations
p u b l i c :
void Create(UINT nBitmapID);
// Overrides
// ClassWizard generated virtual function overrides
/ / { { A F X _ V I RT U A L ( C W z d S p l a s h )
/ / } } A F X _ V I RT U A L
// Implementation
p u b l i c :
virtual ~CWzdSplash();
// Generated message map functions
p r o t e c t e d :
/ / { { A F X _ M S G ( C W z d S p l a s h )
afx_msg void OnPaint();
/ / } } A F X _ M S G
D E C L A R E _ M E S S A G E _ M A P ( )
p r i v a t e :
CWzdBitmap m_bitmap;
} ;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
# e n d i f
// WzdSplash.cpp : implementation file
/ /
#include "stdafx.h"
#include "WzdSplash.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
# e n d i f
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// CWzdSplash
C W z d S p l a s h : : C W z d S p l a s h ( )
{ }
C W z d S p l a s h : : ~ C W z d S p l a s h ( )
{ }
BEGIN_MESSAGE_MAP(CWzdSplash, CWnd)
/ / { { A F X _ M S G _ M A P ( C W z d S p l a s h )
O N _ W M _ PA I N T ( )
/ / } } A F X _ M S G _ M A P
E N D _ M E S S A G E _ M A P ( )
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// CWzdSplash message handlers
void CWzdSplash::OnPaint()
{
CPaintDC dc(this); // device context for painting
// get bitmap colors
CPalette *pOldPal = dc.SelectPalette(m_bitmap.GetPalette(),FA L S E ) ;
d c . R e a l i z e P a l e t t e ( ) ;
// get device context to select bitmap into
CDC dcComp;
d c C o m p . C r e a t e C o m p a t i b l e D C ( & d c ) ;
d c C o m p . S e l e c t O b j e c t ( & m _ b i t m a p ) ;
// draw bitmap
d c . B i t B l t ( 0 , 0 , m _ b i t m a p . m _ Width,m_bitmap.m_Height, &dcComp, 0,0,SRCCOPY);
// reselect old palette
d c . S e l e c t P a l e t t e ( p O l d P a l , FA L S E ) ;
}
void CWzdSplash::Create(UINT nID)
{
m _ b i t m a p . L o a d B i t m a p E x ( n I D , FA L S E ) ;
int x = (::GetSystemMetrics (SM_CXSCREEN)- m_bitmap.m_Wi d t h ) / 2 ;
int y = (::GetSystemMetrics (SM_CYSCREEN)- m_bitmap.m_Height)/2;
CRect rect(x,y, x + m _ b i t m a p . m _ Wi d t h , y + m _ b i t m a p . m _ H e i g h t ) ;
C r e a t e E x ( 0 , A f x R e g i s t e r W n d C l a s s ( 0 ) , " " ,
W S _ P O P U P | W S _ V I S I B L E | W S _ B O R D E R , r e c t , N U L L , 0 ) ;
}
welcomeplay 2002-05-16
  • 打赏
  • 举报
回复
增添Splash screen啊
内容概要:本文围绕“阶梯碳下考虑P2G-CCS与供需灵活响应的IES优化调度”展开,基于Matlab平台构建综合能源系统(IES)在阶梯式碳交易机制下的优化调度模型。研究深度融合电制气(P2G)与碳捕集、利用与封存(CCS)技术,结合需求侧灵活响应机制,旨在提升系统的低碳运行能力与经济性。通过建立多能流耦合的优化模型,协调电力、天然气、热力等多种能源形式的协同调度,有效降低系统碳排放强度,并借助YALIMIP工具包调用求解器进行高效求解。文档提供了完整的代码实现、模型构建流程与结果分析方法,涵盖从问题建模到仿真实现的全过程,具备较强的可复现性与科研参考价值。; 适合人群:具备电力系统、能源系统或优化建模相关背景的研究生、高校教师及工程技术人员,尤其适合从事综合能源系统、碳减排策略、P2G与CCS技术集成研究的专业人员,需熟练掌握Matlab编程与基本的数学规划知识。; 使用场景及目标:①用于研究阶梯式碳交易政策下综合能源系统的低碳经济调度策略;②支撑P2G-CCS技术与需求响应机制在IES中的仿真集成与性能评估;③为撰写高水平学术论文(如EI/SCI收录)的技术基础与复现资源,推动碳中和背景下能源系统优化方向的创新研究。; 阅读建议:建议结合百度网盘提供的完整代码与资料包,按照模块逐步调试程序,重点理解目标函数的设计逻辑、碳交易成本的建模方式、约束条件的数学表达及求解器的配置方法,同时关注多能耦合设备的建模细节,配合公众号“荔枝科研社”获取持续的技术支持与案例拓展。
内容概要:本文系统研究了基于卷积神经网络(CNN)与支持向量机(SVM)融合的CNN-SVM混合模型在数据分类预测中的应用,尤其聚焦于工业故障识别领域。通过Matlab平台实现,该方法首先利用CNN强大的多层次特征提取能力对原始输入数据进行深度特征学习,自动捕获关键局部模式与空间结构信息,随后将提取的高层特征为输入传递至SVM分类器,借助SVM在高维空间中小样本条件下卓越的分类性能与泛化能力完成最终判别任务。文中详尽阐述了模型的整体架构设计、网络参数配置、训练优化流程及特征迁移机制,充分结合了深度学习在特征表达上的优势与传统机器学习在分类决策上的稳健性。实验部分通过实际故障数据集验证了该混合模型相较于单一CNN或SVM模型在分类准确率、鲁棒性和抗过拟合能力方面的显著提升,证明了其在复杂故障诊断任务中的有效性与先进性; 适合人群:具备一定机器学习与深度学习理论基础,熟悉Matlab编程环境,从事故障诊断、模式识别、智能制造、电力系统监控或工业数据分析等相关领域的研究生、科研人员及工程技术开发者; 使用场景及目标:① 应用于旋转机械、电力设备、航空航天等领域的多类别故障识别与状态监测;② 掌握深度特征提取与传统分类器融合的技术路径,提升小样本、高噪声环境下数据分类的精度与可靠性;③ 为撰写高水平学术论文、开展科研项目或工程实践提供可复现的算法框架与完整代码支持; 阅读建议:读者应深入理解CNN与SVM的协同工机制,重点分析特征提取层与分类层之间的接口设计,建议动手运行并调试所提供的Matlab代码,尝试在不同数据集上进行迁移实验与参数调优,以全面掌握该混合模型的应用技巧与优化策略。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧