С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
 Аватар для мистер х
21 / 21 / 2
Регистрация: 11.01.2009
Сообщений: 110

Изменение выравнивания в EDIT control

02.06.2011, 17:09. Показов 4203. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как налету изменить выравнивание текста в edit
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2011, 17:09
Ответы с готовыми решениями:

Изменение Back Color у Edit Control со свойством Read Only
Всем доброго времени суток. Есть одна проблема, которая уже изрядно достала меня. Ни в какую не получается изменить цвет Edit Control со...

Slider control и edit control
Здравствуйте как мне получать значения с slider control и как на основе полученных значений устанавливать в edit control текст Вот такой...

Изменение выравнивания к подписям оси X в Chart
Впервые в VBA. Облазил всю справку, но не как не могу изменить выравнивание к подписям оси X и число категорий между подписями в VBA. ...

27
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
04.06.2011, 17:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bigredcat Посмотреть сообщение
В WinXP SP3 работает.
Это вопрос или утверждение? Ну у меня XP Pro (SP3), ноль по фазе...
В общем пока понятно.
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
04.06.2011, 17:55
Digit@ll, Это было утверждение. А приложение у вас компилируется?
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
04.06.2011, 18:01
Та с компиляцией проблем нет. Текст как был слева, так и остался. Проверял на разных XP c SP3.
Уже и компилировал и в 6.0 и в 2008.
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
04.06.2011, 18:09
Странно очень, вы точно мое приложение скачали. Этот код
edit_align.cpp
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
74
75
76
77
78
79
80
81
82
83
84
#include <tchar.h>
#include <windows.h>
#include "resource.h"
 
 
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, PTSTR pCmdLine, int nCmdShow)
{
    MSG msg;
    BOOL ret;
 
    HWND hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL,
        (DLGPROC)MainDlgProc);
 
    while ((ret = GetMessage(&msg, NULL, 0, 0)) != 0)
    { 
        if (ret == -1) break;
 
        if (!IsDialogMessage(hWnd, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    return 0;
}
 
 
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static HWND hEdit;
    switch (uMsg)
    {
    case WM_INITDIALOG:
        ShowWindow(hWnd, SW_SHOW); // добавил сейчас (а раньше в настройках диалога устанавливал).
        hEdit = GetDlgItem(hWnd, IDC_EDIT);
        break;
 
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDOK:
            DestroyWindow(hWnd);
            break;
 
        case IDC_LEFT:
            SetWindowLongPtr(hEdit, GWL_STYLE, GetWindowLongPtr(hEdit,  GWL_STYLE) & ~0x0003L | ES_LEFT);
            InvalidateRect(hEdit, NULL, FALSE);
            UpdateWindow(hEdit);
            break;
 
        case IDC_CENTER:
            SetWindowLongPtr(hEdit, GWL_STYLE, GetWindowLongPtr(hEdit,  GWL_STYLE) & ~0x0003L | ES_CENTER);
            InvalidateRect(hEdit, NULL, FALSE);
            UpdateWindow(hEdit);
            break;
 
        case IDC_RIGHT:
            SetWindowLongPtr(hEdit, GWL_STYLE, GetWindowLongPtr(hEdit,  GWL_STYLE) & ~0x0003L | ES_RIGHT);
            InvalidateRect(hEdit, NULL, FALSE);
            UpdateWindow(hEdit);
            break;
 
        default:
            return FALSE;
        }
        break;
 
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
 
    default:
        return FALSE;
    }
 
    return TRUE;
}
?
А что возвращают GetWindowLogPtr и SetWindowLongPtr?
0
33 / 33 / 2
Регистрация: 24.09.2010
Сообщений: 140
04.06.2011, 23:56
Должно работать, да и в MFC сделано так же:
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
// Change a window's style
 
AFX_STATIC BOOL AFXAPI _AfxModifyStyle(HWND hWnd, int nStyleOffset,
    DWORD dwRemove, DWORD dwAdd, UINT nFlags)
{
    ASSERT(hWnd != NULL);
    DWORD dwStyle = ::GetWindowLong(hWnd, nStyleOffset);
    DWORD dwNewStyle = (dwStyle & ~dwRemove) | dwAdd;
    if (dwStyle == dwNewStyle)
        return FALSE;
 
    ::SetWindowLong(hWnd, nStyleOffset, dwNewStyle);
    if (nFlags != 0)
    {
        ::SetWindowPos(hWnd, NULL, 0, 0, 0, 0,
            SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | nFlags);
    }
    return TRUE;
}
 
BOOL PASCAL
CWnd::ModifyStyle(HWND hWnd, DWORD dwRemove, DWORD dwAdd, UINT nFlags)
{
    return _AfxModifyStyle(hWnd, GWL_STYLE, dwRemove, dwAdd, nFlags);
}
Добавлено через 1 час 41 минуту
На XP не работает, на 7 работает.
0
 Аватар для мистер х
21 / 21 / 2
Регистрация: 11.01.2009
Сообщений: 110
04.06.2011, 23:58  [ТС]
Цитата Сообщение от Nwq Посмотреть сообщение
На XP не работает, на 7 работает.
то что я и говорил...)))))
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
05.06.2011, 06:18
Да, странно это все. Судя по MSDN 2008 должно работать для любых edit control начиная с Win98, а для многострочных с Win95. Но у кого то вот не работает. Хотя я проверял в Windows XP Professional и Home Edition (RUS) с установленным SP3, все работает (правда, кроме SP3 установлены практически все обновления вышедшие после SP3). И в Windows XP Professional x64 Edition (ENU) с SP2 тоже работает.
0
33 / 33 / 2
Регистрация: 24.09.2010
Сообщений: 140
05.06.2011, 11:58
Да, наверно из за обновлений, я проверял на XP SP3 без обновлений.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2011, 11:58
Помогаю со студенческими работами здесь

Изменение выравнивания при выходе текста за пределы контейнера
Добрый день! Подскажите, пожалуйста, как можно реализовать следующую конструкцию: Текст находится в блоке, выравнивание по центру. При...

Создание Edit Control
Всем добрый день. Попытаюсь подробно объяснить суть проблемы. (MSV 2010) Когда мы создаем Dialog, то можем туда добавить элементы из...

MFC и Edit control
У меня есть MFC проект, есть поле ввода CEdit. Как получить из него строку и переконвертировать в число? Нереальная проблема.

MFC и Edit control
Я уже спрашивал как получить строку из CEdit и перевести в число. Умный человек ответил. А из числа в строку, чтобы можно было в...

MFC и Edit Control
Здравствуйте. Скажите как проверить Edit Control - введено в него число или буква?


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru