编写一个MDI应用程序,在客户区从左至右滚动显示文本串“欢迎使用《Visual C++面向对象程序设计》

编写一个MDI应用程序,在客户区从左至右滚动显示文本串“欢迎使用《Visual C++面向对象程序设计》,第1张

编写一个程序,实现一行文本的水平滚动显示。要求每个周期文本为红、黄两种

颜色,字体为宋、黑两种字体。

1. 用MFC AppWizard新建一个工程 名为Q2的

2. 在CQ2VIEW类的OnDraw()函数中添加以下程序

void CQ2View::OnDraw(CDC* pDC)

{

CQ2Doc* pDoc = GetDocument()

ASSERT_VALID(pDoc)

// TODO: add draw code for native data here

CPaintDC dc(this)

CRect r1

LOGFONT lf

CString outString="滚动的文字"

CBrush *OldBrush,NewBrush

CPen *OldPen,NewPen

CFont *OldFont,NewFont

COLORREF strRgb[]={RGB(255,0,0),RGB(255,255,0)}

SetTimer(0,10,NULL)

SetTimer(1,100,NULL)

GetClientRect(&r1)

pDC->GetCurrentFont()->GetLogFont(&lf)

lf.lfCharSet=DEFAULT_CHARSET

lf.lfHeight=30

lf.lfWidth=20

if(x>=r1.right&&i!=1)

{

x=1

i=1

}

else if(x>=r1.right&&i!=0)

{

x=1

i=0

}

if(i==1)

{

KillTimer(0)//关闭定时器0

strcpy(lf.lfFaceName,"黑体")//复制

}

else if(i==0)

{

KillTimer(1)//关闭定时器1

strcpy(lf.lfFaceName,"宋体")

}

pDC->SetBkMode(TRANSPARENT)//设置背景模式

NewFont.CreateFontIndirect(&lf)

OldFont=pDC->SelectObject(&NewFont)

NewPen.CreatePen(PS_SOLID,1,strRgb[i])

NewBrush.CreateSolidBrush(strRgb[i])

OldPen=pDC->SelectObject(&NewPen)

OldBrush=pDC->SelectObject(&NewBrush)

pDC->BeginPath()

pDC->TextOut(x,200,outString)

pDC->EndPath()

pDC->StrokeAndFillPath()

NewPen.DeleteObject()

NewBrush.DeleteObject()

NewFont.DeleteObject()

}

在运行框里输入携丛“欢迎使用《Visual C++面向对象程序设计》 ”御友

这里使用了定时器,你也可以不用。

这个题我以前做过,现在忘了,辩拆樱呵呵...

子窗体的改变,可以在 ChildFrm.cpp 里修改

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT&cs)

{

// 在这里修改 CREATESTRUCT cs

if( !CMDIChildWnd::PreCreateWindow(cs) )return FALSE

return TRUE

}

如果你指的是自己的对话窗,则要自己制作对话窗资源,加相应的class,在View (或别处)的BEGIN_MESSAGE_MAP(。。)里加上消息搏老映射,在OnXXXX()慧盯里加 与对话窗有前银和关的 *** 作。

创建一个dlg类 然后 在按钮的响应函数里添加以下代码

CDemoDlg为你所创建的对话框的类名

//创建对话框对渣世象

CDemoDlg* pDlg = new CDemoDlg()

//显示对话框窗口

pDlg->DoModal()

/如丛肢/郑扒删除对话框对象

delete pDlg


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12380245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存