标题:[求助]偶是新手,询问一个VB小闹钟的问题。
只看楼主
蓝血婴儿
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-4
 问题点数:0 回复次数:1 
[求助]偶是新手,询问一个VB小闹钟的问题。

我所用的代码是griefforyou在以前贴出来的一个转动的小闹钟,我又做了定时关机和定时报警的功能的菜单,
问题一:
如何能够点菜单出来一个弹出对话框呢?
问题二:
做好以后是灰色的?怎么改背景和颜色?


够菜的问题吧,谢谢大虾们~~~

代码如下:

Option Explicit

Const PI = 3.1415926
Dim BaseX As Integer, BaseY As Integer, R As Integer
Dim r1 As Integer, r2 As Integer, r3 As Integer

Private Sub Form_Load()
Me.ScaleMode = 3
Me.AutoRedraw = True

If Me.Width < 3000 Then Me.Width = 3000
If Me.Height < 3000 Then Me.Height = 3000

End Sub

Private Sub Init()
Dim i As Integer

BaseX = Me.ScaleWidth / 2
BaseY = Me.ScaleHeight / 2

R = IIf(BaseX > BaseY, BaseY * 0.8, BaseY * 0.8)
r1 = R * 0.2
r2 = R * 0.1
r3 = R * 0.05

For i = 0 To 360 Step 6

If i Mod 30 = 0 Then '时
Me.DrawWidth = 2
DrawLine BaseX + (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180), BaseX + (R - 8) * Sin(i * PI / 180), BaseY - (R - 8) * Cos(i * PI / 180), 3
Else '分
Me.DrawWidth = 2
Me.PSet (BaseX + (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180))
End If
Next

Me.DrawWidth = 1
Me.Circle (BaseX, BaseY), R
End Sub

'绘制指针
Private Sub DrawClock()
Dim Second As Integer
Dim Minute As Integer
Dim Hours As Integer

Second = DatePart("s", Time)
Minute = DatePart("n", Time)
Hours = DatePart("h", Time)
If Hours > 12 Then
Hours = Hours - 12
End If

Me.DrawWidth = 1
Me.Circle (BaseX, BaseY), 4

DrawLine BaseX - r1 * Sin(Second * PI / 30), BaseY + r1 * Cos(Second * PI / 30), BaseX + (R - 10) * Sin(Second * PI / 30), BaseY - (R - 10) * Cos(Second * PI / 30), 0
DrawLine BaseX - r2 * Sin(Minute * PI / 30), BaseY + r2 * Cos(Minute * PI / 30), BaseX + R * 0.8 * Sin(Minute * PI / 30), BaseY - R * 0.8 * Cos(Minute * PI / 30), 1
DrawLine BaseX - r3 * Sin((Hours + Minute / 60) * PI / 6), BaseY + r3 * Cos((Hours + Minute / 60) * PI / 6), BaseX + R * 0.6 * Sin((Hours + Minute / 60) * PI / 6), BaseY - R * 0.6 * Cos((Hours + Minute / 60) * PI / 6), 2
End Sub

'画线函数
Private Sub DrawLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, Flag As Integer)
Static OldSX1 As Integer, OldSX2 As Integer, OldSY1 As Integer, OldSY2 As Integer
Static OldMX1 As Integer, OldMX2 As Integer, OldMY1 As Integer, OldMY2 As Integer
Static OldHX1 As Integer, OldHX2 As Integer, OldHY1 As Integer, OldHY2 As Integer
Select Case Flag
Case 0
Me.DrawWidth = 1
Me.Line (OldSX1, OldSY1)-(OldSX2, OldSY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldSX1 = x1
OldSX2 = x2
OldSY1 = y1
OldSY2 = y2
Case 1
Me.DrawWidth = 2
Me.Line (OldMX1, OldMY1)-(OldMX2, OldMY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldMX1 = x1
OldMX2 = x2
OldMY1 = y1
OldMY2 = y2
Case 2
Me.DrawWidth = 3
Me.Line (OldHX1, OldHY1)-(OldHX2, OldHY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldHX1 = x1
OldHX2 = x2
OldHY1 = y1
OldHY2 = y2
Case Else
Me.Line (x1, y1)-(x2, y2)
End Select
End Sub

Private Sub Form_Resize()
Me.Cls
Call Init
End Sub

Private Sub Picture1_Click()

End Sub

Private Sub Timer1_Timer()
Call DrawClock
End Sub


Private Sub 退出程序_Click()
End
End Sub

[此贴子已经被作者于2006-12-4 19:40:52编辑过]

搜索更多相关主题的帖子: 小闹钟 Integer 询问 对话框 
2006-12-04 19:39
蓝血婴儿
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-4
得分:0 
希望各位大虾不要吝啬,帮帮小弟……
2006-12-04 19:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-107253-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.138001 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved