Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150

Текст под углом

01.04.2011, 20:59. Показов 3491. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста ниписать текст по вертикали.
C++
1
2
    t.Format("%g",L);
    dc.TextOut(x, y,t);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2011, 20:59
Ответы с готовыми решениями:

Текст под углом
Здесь рассказано, как вывести текст на канву под заданным углом... Почему у меня ничего не получается?

Текст под углом в прямоугольнике
Как правильно нарисовать текст вертикально, в центре заданного прямоугольника на QPainter ? QRect r(100, 100, 200, 100); ...

Как написать текст под нужным углом?
Привет Всем. Как повернуть (написать g.drawString(...)) текст под нужным углом?

12
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
02.04.2011, 00:40
C++
1
2
3
        newFont=CreateFont(10,10,900,0,0,0,0,0,0,0,0,0,0,L"Arial");
        oldFont=(HFONT)SelectObject(hdc,newFont);
        TextOut(hdc,100,100,L"abcde",5);
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
03.04.2011, 22:41  [ТС]
Спасибо большое за помощь. Только у меня вылетает две ошибки:

1. 'CreateFontA' : cannot convert parameter 14 from 'unsigned short [6]' to 'const char *'
2. 'hdc' : undeclared identifier

Со второй ошибкой более менее понятно - неопределённый идентификатор. Только не знаю где конкретно нужно прописать и какого типа эта переменная? А вот с первой тупик.

Буду очень благодарен если поможете разобраться.
0
6 / 5 / 1
Регистрация: 01.04.2011
Сообщений: 12
04.04.2011, 05:05
C++
1
2
3
4
5
6
7
8
9
10
void CChildView::OnPaint() 
{
    CPaintDC dc(this); // device context for painting
 
    CFont newFont;
    newFont.CreateFont(10,10,900,0,0,0,0,0,0,0,0,0,0,"Arial");
    CFont *oldFont=dc.SelectObject(&newFont);
             dc.TextOut(100,100,"abcde");
    dc.SelectObject(oldFont);
}
1
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
04.04.2011, 17:36
Предыдущий мой пример был для Microsoft Visual Studio 2008.
На всякий, вот полный код программы для C++ Builder 5:
C++
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
#include <windows.h>
#pragma hdrstop
 
#pragma argsused
LRESULT CALLBACK    WindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
  HDC   hdc;
  PAINTSTRUCT   ps;
  HFONT newFont,oldFont;
 
  switch(Msg)
  {
    case    WM_DESTROY:
      PostQuitMessage(0);
      return 0;
    case WM_PAINT:
      hdc=BeginPaint(hWnd,&ps);
      newFont=CreateFont(10,10,900,0,0,0,0,0,0,0,0,0,0,"Arial");
      oldFont=(HFONT)SelectObject(hdc,newFont);
      TextOut(hdc,100,100,"abcde",5);
      SelectObject(hdc,oldFont);
      EndPaint(hWnd,&ps);
    break;
    default:
    break;
  }
 
  return DefWindowProc(hWnd,Msg,wParam,lParam);
}
WINAPI  WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
  WNDCLASSEX    WndClsEx;
  static char   szAppName[]="FirstClass";
  MSG   Msg;
 
  WndClsEx.cbSize=sizeof(WndClsEx);
  WndClsEx.style=CS_OWNDC|CS_VREDRAW|CS_HREDRAW;
  WndClsEx.lpfnWndProc=WindowProc;
  WndClsEx.cbClsExtra=0;
  WndClsEx.cbWndExtra=0;
  WndClsEx.hInstance=hInstance;
  WndClsEx.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  WndClsEx.hCursor=LoadCursor(NULL,IDC_ARROW);
  WndClsEx.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  WndClsEx.lpszMenuName=NULL;
  WndClsEx.lpszClassName=szAppName;
  WndClsEx.hIconSm=LoadIcon(hInstance,IDI_APPLICATION);
 
  RegisterClassEx(&WndClsEx);
 
  CreateWindowEx(
    WS_EX_OVERLAPPEDWINDOW,
    szAppName,
    "Basic Win32 Application",
    WS_OVERLAPPEDWINDOW|WS_VISIBLE,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    NULL,
    NULL,
    hInstance,
    NULL
    );
 
  while(GetMessage(&Msg,NULL,0,0))
  {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
  }
 
  return Msg.wParam;
}
.
C++ не очень одинаковый для разных систем и компиляторов.
1
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
04.04.2011, 18:11
потому что ваш борланд надо выкинуть
1
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
04.04.2011, 19:02
Ну да, выкинуть... Я за него деньги заплатил! Не буду выкидывать.
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
05.04.2011, 18:22  [ТС]
Спасибо всем большое за помощь. Остался ещё такой вопрос. Само задание заключается в отрисовке детальки. Отрисовка у меня в методе ОnD(который сам создавал и вызывается он через кнопку в меню). Можно ли метод OnPaint(отвечающий за текст под углом) каким-то образом вставить в метод ОnD, чтобы при нажатии кнопки отрисовывалась деталь+был текст?
0
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
05.04.2011, 18:45
Тогда вопрос: в чём писать? Ну в смысле в Borland C++, Microsoft Visual C++, и т.п.?
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
05.04.2011, 19:28  [ТС]
Microsoft Visual C++ 6.0
0
6 / 5 / 1
Регистрация: 01.04.2011
Сообщений: 12
05.04.2011, 19:48
В твоём OnD вместо CPaintDC используй CClientDC следующим образом

C++
1
2
3
4
5
void CTestdlgDlg::OnD()
{
    CClientDC dc(this);
//рисуй на dc как в OnPaint
}
А лучше всего сделай одну функцию DrawPicture вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//.h
class CTestdlgDlg : public CDialog
{
public:
    void DrawPicture(CDC &dc);
 
    // Generated message map functions
    //{{AFX_MSG(CTestdlgDlg)
    afx_msg void OnPaint();
    afx_msg void OnButton1();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//.cpp
void CTestdlgDlg::OnPaint() 
{
    DrawPicture(CPaintDC(this));
}
void CTestdlgDlg::OnButton1() 
{
    DrawPicture(CClientDC(this));
}
void CTestdlgDlg::DrawPicture(CDC &dc)
{
    dc.MoveTo(0,0);
    dc.LineTo(300,300);
}
пиши что ещё надо, пока есть время - помогу...
1
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
05.04.2011, 23:23
В общем так...
У меня Visual Studio 2008, на нём и написал.
На форме надо добавить обработку события Paint:
C++
1
2
3
4
5
6
7
8
9
10
    private: System::Void Form1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
                 if(bdraw)
                 {
                     Graphics^ g = e->Graphics;
                     System::Drawing::Font^ drawFont = gcnew System::Drawing::Font( "Arial",16 );
                     SolidBrush^ drawBrush = gcnew SolidBrush( Color::Black );
                     StringFormat^ stringFormat = gcnew StringFormat(StringFormatFlags::DirectionVertical);
                     g->DrawString("abcd",drawFont,drawBrush,100,100,stringFormat);
                 }
             }
, bdraw где-нибудь присвоить false, скажем добавить его к классу формы как поле, а по нажатию кнопки присвоить ему true. Что непонятно - спрашивайте.
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
06.04.2011, 23:03  [ТС]
Ещё раз благодарю за помощь. Всё работает, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2011, 23:03
Помогаю со студенческими работами здесь

Подскажите как вывести текст в форме под углом
подскажите сабж, я то нашел один пример а он неработает, хотя и ошибок не выкидывает.

Delphi поставить текст под углом, угол сам вводишь
Здраствуйте, у меня возник вопрос. Мне с помощью компонента Edit нужно вводить угол наклона, чтобы текст был под этим углом.Помогите...

Можно ли, используя html или css, написать текст под углом 90?
можно ли с помашю html или css написать текст под углом 90?

Картинка под углом.
Не могу зделать картинку под углом нужно повернуть на несколько градусов, кто нибудь знает подскажите пожалуйста???

Движение под углом
Я хотел бы сделать движение объекта под определенным углом. Если я ставлю объект под углом и начинаю двигать через velocity, то объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru