|
|
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
Вот так вот я написал отрисовку графика на окне...))) автор LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam) { HDC hDC = GetDC (hwnd); HPEN Setka = CreatePen (PS_SOLID,1,RGB(205,205,205)); SelectObject (hDC, Setka); HFONT hFont = CreateFont(-9, 0, 0, 0, 0, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH, (LPCTSTR)"Arial"); SelectObject (hDC, hFont); //вот тут рисую сетку) for (int i = -20; i <= 20; i++) { MoveToEx(hDC, (i+20)*15, 0, NULL); LineTo(hDC,(i+20)*15,600); // а вот тут мне надо написать координату не наю как преобразовать int в строку((( (знаю позор мне) TextOut(hDC,(i+20)*15,615, i, 3); //_______ MoveToEx(hDC, 0, (i+20)*15, NULL); LineTo(hDC,600,(i+20)*15); TextOut(hDC,615,(i+20)*15, str, 3); } HPEN Os = CreatePen (PS_SOLID,1,RGB(0,0,0)); SelectObject (hDC, Os); MoveToEx(hDC,300,0, NULL); LineTo(hDC,300,600); MoveToEx(hDC,0,300, NULL); LineTo(hDC,600,300); HPEN Graf = CreatePen (PS_SOLID,1,RGB(0,0,0)); SelectObject (hDC, Graf); А вот тут начинается самое интересное...начинает грузиться и зависает((( в чем поблема не могу понять((( double j = -20.0; while (j <= 20.0) { if (j == -20.0) { MoveToEx(hDC,300.0 + j*15.0, 300.0 - j*15.0, NULL); } else { LineTo(hDC,300.0 + j*15.0, 300.0 - j*15.0); j = j + 0.1; } } DeleteObject (Setka); DeleteObject (Os); DeleteObject (Graf); ReleaseDC (hwnd, hDC); if (Message == WM_DESTROY ) { PostQuitMessage(0); return 0; } return DefWindowProc(hwnd,Message,wparam,lparam); } Как преобразовать инт в чар что ли... и почему зависает все ето дело((( Заранее большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 13:57 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
Забыл добавить что если double j = -20.0; поставить 0 то все прекрасно работает((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 14:34 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
Не по вопросу, но по субжу Обрати внимание на следующее MSDN BOOL DeleteObject( . . . Remarks Do not delete a drawing object (pen or brush) while it is still selected into a device context. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 14:36 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
'FaTsO'Как преобразовать инт в чар что ли... Учите матчасть... F1 Вам в помощь... На самом деле это элементарно: для единичного символа (число от 0 до 9) 0х30+<число> из числа в строку: itoa() - для числа типа int; ltoa() - для числа типа long... из строки в число: atoi() - для числа типа int; atol() - для числа типа long... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 14:43 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
'FaTsO' // а вот тут мне надо написать координату не наю как преобразовать int в строку((( (знаю позор мне) Код: plaintext 1. 2. по поводу зависает. j не увеличивается, если равно -20 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 14:45 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
MoveTo и LineTo - не могут принимать параметры типа double. Это стандартные функции API. Тут никак не обойти, разве что написать свои функции. А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 17:20 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
'FaTsO'Вот так вот я написал отрисовку графика на окне...))) [quot автор] double j = -20.0; while (j <= 20.0) { if (j == -20.0) { MoveToEx(hDC,300.0 + j*15.0, 300.0 - j*15.0, NULL); } else { LineTo(hDC,300.0 + j*15.0, 300.0 - j*15.0); j = j + 0.1; } } for(double j1=-20.0;j1<=20.0;j1=j1+0.1) { if (j1==-20.0) MoveToEx(hDC,(int)(300.0 + j1*15.0),(int)(300.0 - j1*15.0),NULL); LineTo(hDC,(int)(300.0 + j1*15.0), (int)(300.0 - j1*15.0)); } Вот так вот не виснет. Хотя у меня вышло за границе окна. Нужно еще окно перерисовывать правильно - но это уже другой вопрос. Да и преобразовать в строку при помощи функции itoa(,,,) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 19:45 |
|
||
|
WinAPI снова))))
|
|||
|---|---|---|---|
|
#18+
автор LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam) { Это чего, реально такая вот процедура окна ? На все сообщения пытается что-то рисовать ? Ну так еще бы не зависла, конечно, стек переполнится очень быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 22:43 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=380&tid=2032293]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 406ms |

| 0 / 0 |
