Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
win api
|
|||
|---|---|---|---|
|
#18+
Не могу разобраться как сделать что бы при рисовании фигуры изменение размера фигур прорисовывалось, знаю что делается это посредством WM_MOUSEMOVE но как именно не пойму. main.cpp Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. shape.cpp Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2012, 19:39 |
|
||
|
win api
|
|||
|---|---|---|---|
|
#18+
Никто не будет вычитывать ваши 100500 строк. Соберите минимальный проект, в котором будет воспроизводиться ваша проблема и запостите. jacky22что бы при рисовании фигуры изменение размера фигур прорисовывалось лично мне не понятен смысл этой фразы. Вы хотите, чтобы фигура изменяла свой масштаб в динамике при движении мышки или что? Если первое, то алгоритм должен быть такой: 1. Рисуем фигуру в первоначальном состоянии. 2. Таймаут 3. while (не достигнут нужный масштаб) 4. Стираем фигуру в первоначальном состоянии. 5. Рисуем фигуру в следующем состоянии, в большем или меньшем масштабе, в сравнении с предыдущим состоянием 6. Таймаут 7. goto 3 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Зачем здесь LineTo, если она не двигается дальше MoveTo? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2012, 20:01 |
|
||
|
win api
|
|||
|---|---|---|---|
|
#18+
Нет, жмешь на левую кнопку мыши фиксируется нач точка затем тянем и допустим круг прорисовывался при перемещении мышки. Ну как в paint, а у меня жму кнопку перемещаю и ничего не происходит отпускаю и только тогда рисуется круг. switch (message) { case WM_PAINT: for( int i = 0; i < countshape; i++ ) allshape[i]->draw(hdc); break; case WM_LBUTTONDOWN: if( shape == NULL ) { deletedshape.clear(); switch (nextshape) { case 0: shape = new mRectangle(); break; case 1: shape = new mCircle(); break; case 2: shape = new mTriangle(); break; case 3: shape = new mPolygon(); allshape.push_back(shape); countshape++; break; case 4: shape = new mText(); break; case 5: shape = new mLine(); break; case 6: shape = new elips(); break; }; }; xy.x=LOWORD(lParam); //узнаём координаты xy.y=HIWORD(lParam); shape->addpoint(xy,1); break; case WM_LBUTTONUP: xy.x=LOWORD(lParam); //узнаём координаты xy.y=HIWORD(lParam); shape->addpoint(xy, 1); if( shape->allow() ) shape->addpoint(xy,1); else { allshape.push_back( shape ); countshape++; shape = NULL; }; InvalidateRect(hWnd, NULL, false); UpdateWindow(hWnd); break; case WM_RBUTTONDOWN: if( (nextshape == 3) && (shape != NULL) ) { xy.x = 0; xy.y = 0; shape->addpoint( xy, 0 ); shape = NULL; InvalidateRect(hWnd, NULL, false); UpdateWindow(hWnd); }; break; case WM_MOUSEMOVE: if(MK_LBUTTON==wParam) { if (nextshape = 5) { xy.x=LOWORD(lParam); //узнаём координаты xy.y=HIWORD(lParam); hdc = GetDC(hWnd); MoveToEx(hdc, xy.x, xy.y, NULL); LineTo(hdc, xy.x, xy.y); ReleaseDC(hWnd, hdc); } } break; case WM_COMMAND: switch(LOWORD(wParam)) { case 1201: nextshape = 1; break; case 1211: nextshape = 0; break; case 1202: nextshape = 5; break; case 1203: nextshape = 6; break; case 1213: nextshape = 3; break; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2012, 20:17 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2020733]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 299ms |

| 0 / 0 |
