求VC++源代码:用VC++编写一个简单的应用程序(

求VC++源代码:用VC++编写一个简单的应用程序(,第1张

我认为学习vc++更加便捷的开车道是找一本技能型的书籍。

比如,通过vc++的集成环境,简简单单生成一个窗口框架,并在其中适当的位置显示一句话,诸如此类,一点一点的增加技能,很快的。那本书你要找对。------我记得书名大概是mfc实例100例。

通过vc++的集成环境,简简单单生成一个窗口框架(所有必要的但是不用编写甚至无需关心的代码),他的过程是这样的。

第一步,点击“文件“下的”新建“。

第二步,在工程属性业中点击MFC AppWizard(exe),在右侧填写工程, 路径信息。然后点击确定。

第三步,选择单文档,点击确定。

第四不,关于数据库信息的,直接电机下一步

第五步,直接电机下一步。

第六步,直接电机下一步。

第七步,点击完成。

现在,你可以执行你的第一个窗口程序了。

只实现了大体的时钟外观

用MFC 建单文档程序 在生成的CMainFram类中的PreCreateWindow中添加cs.cx=200

cs.cy=290

然后在View类的OnDraw函数中添加如下代码:

const CRect rcBounds(10,10,180,180)

const CRect rcInvalid(10,10,180,180)

pDC->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)))

CPen pen(PS_SOLID,6,RGB(0,122,122))

pDC->SelectObject(&pen)

pDC->Rectangle(rcBounds)

//显示Colock中的3,6,9,12

pDC->TextOut(rcBounds.right/2-8,rcBounds.top+rcBounds.bottom/12,"12")

pDC->TextOut(rcBounds.right/2-4,rcBounds.bottom-rcBounds.bottom/12-17,"6")

pDC->TextOut(rcBounds.left+rcBounds.right/12,rcBounds.bottom/2-4,"9")

pDC->TextOut(rcBounds.right-rcBounds.right/12-8,rcBounds.bottom/2-4,"3")

CTime time = CTime::GetCurrentTime()

int nTime_s = time.GetSecond()

int nTime_m = time.GetMinute()

int nTime_h = time.GetHour()

int nLength_S,nLength_M,nLength_H

if(rcBounds.right <rcBounds.bottom)

{

nLength_S = rcBounds.right/2 - rcBounds.right/7

nLength_M = rcBounds.right/2 - rcBounds.right/6

nLength_H = rcBounds.right/2 - rcBounds.right/5

}

else

{

nLength_S = rcBounds.bottom/2 - rcBounds.bottom/7

nLength_M = rcBounds.bottom/2 - rcBounds.bottom/6

nLength_H = rcBounds.bottom/2 - rcBounds.bottom/5

}

CPoint ptOrigin,ptEndS,ptEndM,ptEndH

//Origin Point

ptOrigin.x = rcBounds.right/2

ptOrigin.y = rcBounds.bottom/2

CPen pen4(PS_SOLID,4,RGB(255,200,40))

pDC->SelectObject(&pen4)

pDC->Rectangle(rcBounds.right/2-1,rcBounds.bottom/2+1,rcBounds.right/2+1,rcBounds.bottom/2-1)

//Second

ptEndS.x = (long)(nLength_S*cos(((nTime_s-15)*360/60)*PI/180) + ptOrigin.x)

ptEndS.y = (long)(nLength_S*sin(((nTime_s-15)*360/60)*PI/180) + ptOrigin.y)

//Minute

ptEndM.x = (long)(nLength_M*cos(((nTime_m-15)*360/60)*PI/180) + ptOrigin.x)

ptEndM.y = (long)(nLength_M*sin(((nTime_m-15)*360/60)*PI/180) + ptOrigin.y)

//Hour

if(nTime_h>=12)

{

ptEndH.x = (long)(nLength_H*cos(( ((nTime_h-12)*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.x)

ptEndH.y = (long)(nLength_H*sin(( ((nTime_h-12)*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.y)

}

else

{

ptEndH.x = (long)(nLength_H*cos(( (nTime_h*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.x)

ptEndH.y = (long)(nLength_H*sin(( (nTime_h*5-15+ nTime_m/15 )*360/60)*PI/180) + ptOrigin.y)

}

//Draw

CPen pen1(PS_SOLID,4,RGB(0,0,255))

pDC->SelectObject(&pen1)

pDC->MoveTo(ptOrigin)

pDC->LineTo(ptEndH)

CPen pen2(PS_SOLID,2,RGB(255,0,255))

pDC->SelectObject(&pen2)

pDC->MoveTo(ptOrigin)

pDC->LineTo(ptEndM)

CPen pen3(PS_SOLID,1,RGB(255,0,0))

pDC->SelectObject(&pen3)

pDC->MoveTo(ptOrigin)

pDC->LineTo(ptEndS)

在View类中添加OnInitialUpdate虚函数 设置一定时器

SetTimer(1,400,NULL)

在OnTimer函数中使窗口重绘

Invalidate()

很简单,建好数据库表后,到控制面板--管理工具的数据源中,添加你建数据库驱动,即是设置数据源。命个名字。以便在VC程序中连接这个数据源。就可以用了。

在类中声明一个数据库对象。

CDatabase m_database

m_database.Open(_T("数据源名")这样就连接了数据源。

C**Recordset m_recordset//这个记录集是和你表相联的类。关联你会吧,就是在工作区中新建一个类,该类命名为C**Recordset。选择基类CRecordset.向导会d出一个对话框,然后你找到你建表的目录,双击你要关联的表。向导就会自动完成。这个记录集,你完全要可不要动。在程序中直接引用就形了。

m_recordset(&m_database)//记录集关联数据库。

CString csSQL

csSQL=_T("")//字符串初始化

csSQL=_T("select * from **/*表名*/where CHEPAIHAO_ID=%d"),1)

m_recordset.Open(AFX_DB_DEFAULT_TYPE,csSQL)//打开记录集第一行。

if(m_recordset.GetRecordCount()==0)

{

csSQL.Format(_T("insert into **/*表名*/ values(%d,\'%d-%d-%d\')"),m_chepaihao,m_datatime.GetYear(),m_datatime.GetMonth,m_datatime.GetDay())

//其中m_chepaihao是与车牌编辑框相关联的字符串,m_datatime是与日期控件相关联的Time变量。

m_database.ExecuteSQL(csSQL)//

m_database.Close()

}

//这就添加了一行。

当然这是简化的主要 *** 作。你想,如果要添加一行,一般就是在对话框中,按一个按钮,d出令一个对话框,从这个对话框中填上车牌号,和选择日期。然后按确定按钮。即执行上面的代码,添加了一行。

自己多想点。如果会VC难不到你的。


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

原文地址: http://outofmemory.cn/sjk/6816656.html

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

发表评论

登录后才能评论

评论列表(0条)

保存