Получение координат центра экрана - VB

Узнай цену своей работы

Формулировка задачи:

ХЛП, плз. Я сам обычно пишу на Сях и с бэйсиком начал общаться в рамках институтского курса. Никак не получается вернуть и присвоить переменным разрешение экрана для получения его центра. Привожу листинг программы целиком (определение разрешения должно происходить в процедуре Form_Load()) (буду оч. признателен, если подскажите как это сделать на примере): VERSION 5.00
Листинг программы
  1. Begin VB.Form Form1
  2. BackColor = &H00000000&
  3. BorderStyle = 0 'None
  4. Caption = 'Form1'
  5. ClientHeight = 7200
  6. ClientLeft = 0
  7. ClientTop = 0
  8. ClientWidth = 9600
  9. DrawWidth = 5
  10. FillColor = &H00FFFFFF&
  11. FillStyle = 0 'Solid
  12. ForeColor = &H80000004&
  13. KeyPreview = -1 'True
  14. LinkTopic = 'Form1'
  15. ScaleHeight = 480
  16. ScaleMode = 3 'Pixel
  17. ScaleWidth = 640
  18. ShowInTaskbar = 0 'False
  19. StartUpPosition = 3 'Windows Default
  20. WindowState = 2 'Maximized
  21. Begin VB.Timer Timer1
  22. Interval = 100
  23. Left = 3165
  24. Top = 465
  25. End
  26. End
  27. Attribute VB_Name = 'Form1'
  28. Attribute VB_GlobalNameSpace = False
  29. Attribute VB_Creatable = False
  30. Attribute VB_PredeclaredId = True
  31. Attribute VB_Exposed = False
  32. Private W As Integer
  33. Private H As Integer
  34. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  35. If KeyCode = vbKeyEscape Then
  36. End
  37. End If
  38. End Sub
  39.  
  40. Private Sub Form_Load()
  41. Accelarate = True
  42. WindowState = 2
  43. W = ScaleWidth
  44. H = ScaleHeight
  45. Move Screen.Width - Width, Screen.Height - Height
  46. Move ScaleWidth - Width, ScaleHeight - Height
  47.  
  48. For i = 1 To 250
  49.  
  50. Star(i).x = W / 2
  51. Star(i).y = H / 2
  52. RandomX:
  53. Randomize
  54. Star(i).AddX = Int(Rnd * 290) - Int(Rnd * 290)
  55. If Star(i).AddX = 0 Then GoTo RandomX
  56. RandomY:
  57. Star(i).AddY = Int(Rnd * 190) - Int(Rnd * 190)
  58. If Star(i).AddY = 0 Then GoTo RandomY
  59. Next
  60. End Sub
  61. Private Sub Timer1_Timer()
  62. For i = 1 To 250
  63. SetPixel hdc, W / 2, H / 2, &H404040
  64. col = ((255255255 - 0 + 1) * Rnd + 255255255)
  65. Select Case Abs(W / 2 - (Star(i).x))
  66. Case Is < 20
  67. Size = 1
  68. Case Is < 80
  69. Size = 1
  70. Case Is < 150
  71. Size = 1
  72. Case Is < 200
  73. Size = 2
  74. Case Is < 250
  75. Size = 3
  76. Case Else
  77. Size = 4
  78. End Select
  79. Select Case Abs(H / 2 - (Star(i).y))
  80. 'tmp = ff0000
  81. Case Is < 20
  82. If Size = 0 Then
  83. Size = 1
  84. End If
  85. Case Is < 80
  86. If Size = 0 Then
  87. Size = 1
  88. End If
  89. Case Is < 150
  90. If Size < 2 Then
  91. Size = 2
  92. End If
  93. Case Is < 200
  94. If Size < 3 Then
  95. Size = 3
  96. End If
  97. Case Is < 250
  98. If Size < 4 Then
  99. Size = 4
  100. End If
  101. Case Else
  102. If Size < 5 Then
  103. Size = 4
  104. End If
  105. End Select
  106. SetPixel hdc, W / 2, H / 2, col
  107. Select Case Size
  108. Case 1
  109. SetPixel Me.hdc, Star(i).x, Star(i).y, &H0&
  110. SetPixel Me.hdc, Star(i).x + Star(i).AddX, Star(i).y + Star(i).AddY, col
  111. Case 2
  112. SetPixel Me.hdc, Star(i).x, Star(i).y, &H0&
  113. SetPixel Me.hdc, Star(i).x - 1, Star(i).y, &H0&
  114. SetPixel Me.hdc, Star(i).x + Star(i).AddX, Star(i).y + Star(i).AddY, col
  115. SetPixel Me.hdc, Star(i).x - 1 + Star(i).AddX, Star(i).y + Star(i).AddY, col
  116. Case 3
  117. SetPixel Me.hdc, Star(i).x, Star(i).y, &H0&
  118. SetPixel Me.hdc, Star(i).x - 1, Star(i).y, &H0&
  119. SetPixel Me.hdc, Star(i).x -

Решение задачи: «Получение координат центра экрана»

textual
Листинг программы
  1. Private Sub Form_Load()
  2. Accelarate = True
  3. WindowState = 2
  4. W = GetSystemMetrics(SM_CXSCREEN)
  5. H = GetSystemMetrics(SM_CYSCREEN)
  6.  
  7. Move Screen.Width - Width, Screen.Height - Height
  8. Move ScaleWidth - Width, ScaleHeight - Height

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы