Форум программистов, компьютерный форум CyberForum.ru

Как переместить уже созданный объект в окне? - C++ WinAPI

Восстановить пароль Регистрация
 
infobos
-2 / 6 / 1
Регистрация: 18.06.2010
Сообщений: 175
07.01.2017, 17:13     Как переместить уже созданный объект в окне? #1
Например, создал я кнопку и потом ее нужно переместить. Как это сделать. Какими командами через WinAPI

Требуется постоянный консультант по WinAPI С++.
Вопросов много. Заплачу щедро!


Добавлено через 21 минуту
Единственное что в голову приходит уничтожить объект командой DestroyWindow(hwnd);
И создать по новой с другими координатами.
На сколько это производительно?

Есть еще задача изменить цвет и шрифт не прибегая к рисованию. Ведь там по умолчанию уже что-то установлено.
Как добраться до настроек по умолчанию. За эту информацию щедро заплачу!

Добавлено через 1 минуту
Как у названия кнопки изменить шрифт размер и цвета, не прибегая к рисованию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rao
 Аватар для rao
439 / 302 / 90
Регистрация: 02.04.2014
Сообщений: 908
07.01.2017, 17:48     Как переместить уже созданный объект в окне? #2
для двигания окон существуют функции MoveWindow и SetWindowPos

Цвет кнопки меняется сообщением WM_CTLCOLORBTN

Шрифт меняется сообщением WM_SETFONT

Пользуйся гуглом! или деньгам в кошельке тесно?
infobos
-2 / 6 / 1
Регистрация: 18.06.2010
Сообщений: 175
07.01.2017, 18:08  [ТС]     Как переместить уже созданный объект в окне? #3
Цитата Сообщение от rao Посмотреть сообщение
для двигания окон существуют функции MoveWindow и SetWindowPos
Цвет кнопки меняется сообщением WM_CTLCOLORBTN
Шрифт меняется сообщением WM_SETFONT
Пользуйся гуглом! или деньгам в кошельке тесно?
Пользуюсь, видимо плохо выбираю слова.
Можно кодом отобразить, чтобы видно было куда что вводить?
Бесплатно не помогают. Видать надо платить за помощь. Также лучше купить конультацию, чем тратить дни и часы на пролет. И настроение себе портить.
Уже были мысли обратится в бюро по разработке программ за консультацией.
Может Вы возьметесь мне помогать? Вопросов много и их надо решать.

Добавлено через 13 минут
Цитата Сообщение от rao Посмотреть сообщение
для двигания окон существуют функции MoveWindow и SetWindowPos
Цвет кнопки меняется сообщением WM_CTLCOLORBTN
Шрифт меняется сообщением WM_SETFONT
Пользуйся гуглом! или деньгам в кошельке тесно?
Нужен пример кода. Мне это одна фраза ни о чем не говорит я должен видеть связи. Эту инфу, которую кидаете она понятна только для опытных программистов в winApi. А новичкам без полного кода не понять.
rao
 Аватар для rao
439 / 302 / 90
Регистрация: 02.04.2014
Сообщений: 908
07.01.2017, 18:44     Как переместить уже созданный объект в окне? #4
А что если купить/скачать почитать книжку? Так бы в голове всё более связанно улеглось.
Я бы помог, но свободного времени совсем мало.

Пара примеров кода. Передвигание окна:
C++
1
2
3
    HWND hMainWnd = ...
    HWND hButton = ::GetDlgItem(hMainWnd, IDC_BUTTON1);
    ::MoveWindow( hButton, 10, 10, 150, 50, TRUE);
Изменение шрифта:
C++
1
2
3
4
5
6
7
8
    HWND hMainWnd = ...
    HWND hButton = ::GetDlgItem(hMainWnd, IDC_BUTTON1);
    HFONT font = CreateFont(-14, 0, 0, 0, 
        FW_BOLD, // FW_NORMAL,
        FALSE, FALSE, FALSE, DEFAULT_CHARSET,
        OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
        FF_DONTCARE|DEFAULT_PITCH, L"Arial");
    ::SendMessage(hButton, WM_SETFONT, (WPARAM)font, TRUE );
А вот со сменой цвета сложнее. В MSDN'е написано, что кнопки используют несколько цветов (для освещенной кромки, для тени и для лицевой поверхности), поэтому их нужно перерисовывать вручную. . довольно скушное занятие.
Если нужен красивый интерфейс, то лучше с WinAPI перейти на что-нибудь более удобное: в дотнетовском WPF с элементами можно вытворять всё что душе угодно.
infobos
-2 / 6 / 1
Регистрация: 18.06.2010
Сообщений: 175
08.01.2017, 08:09  [ТС]     Как переместить уже созданный объект в окне? #5
Цитата Сообщение от rao Посмотреть сообщение
А что если купить/скачать почитать книжку?
По накачал книг всего 2-3 штуки + статьи.
Книги плохие для новичков.
MSDN английский сайт плохо разбираюсь.
Много бесполезного чтения получается.
Быстрее проконсультироваться и посмотреть код.
А то что они пишут не клеется с пониманием. Больше на готовых кодах понимаешь.

Добавлено через 3 минуты
Спасибо! Завтра протестирую ваши коды. Очень помогли.
С меня оплата.
Киньте кошелек в личку и свой Email.
Буду признателен за продолжения решения моих вопросов.
Уже завтра. Ушел спать!

Добавлено через 11 часов 39 минут
Все таки этого кода не достаточно. Добавьте полный код. Потому что у меняя не работает. Что нужно еще добавить. Для перерисовки экрана?

Добавлено через 16 минут
С передвижение разобрался! Заработало!

Добавлено через 11 минут
Цитата Сообщение от rao Посмотреть сообщение
Если нужен красивый интерфейс, то лучше с WinAPI перейти на что-нибудь более удобное: в дотнетовском WPF с элементами можно вытворять всё что душе угодно.
Дело в том, что мне нужна графика directx. А в WPF на directx не выйдешь.
Ваши коды заработали. Вы заработали с меня денюжку. Закину Вам 5 тыс. руб. Дайте кошелек Webmoney или яндекс деньги. Напишите в личку.
Вы случаем не знаете может в конструкторах можно получить WinApi Код? Это бы сильно облегчила задачу.

Добавлено через 38 минут
По теме вопрос решен!

Добавлено через 32 минуты
Я так понял метод GetDlgItem находит дескриптор кнопки по идентификатору для обработчика события. И присваивает дескриптор новой переменной?
Что-то я не догнал этот метод.
SEGNET
37 / 37 / 6
Регистрация: 28.12.2012
Сообщений: 277
08.01.2017, 08:18     Как переместить уже созданный объект в окне? #6
Петцольд Ч. Программирование для Windows 95 - на русском и с примерами. Необязательно ее читать с начала. Можно по содержанию пробежаться. Если у вас не стоит цель обучится Winapi, тогда действительно не имеет смысла тратить столько времени.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2017, 08:26     Как переместить уже созданный объект в окне?
Еще ссылки по теме:

C++ WinAPI Как запустить fullscreen приложение в окне?
Как послать сообщение в диалоговом окне? C++ WinAPI
C++ WinAPI Как сделать прозрачный фон у checkbox в окне?
C++ WinAPI Как переместить окно, если курсор выходит за его пределы? (Си)
C++ WinAPI Как описать TreeView в диалоговом окне

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

Или воспользуйтесь поиском по форуму:
infobos
-2 / 6 / 1
Регистрация: 18.06.2010
Сообщений: 175
08.01.2017, 08:26  [ТС]     Как переместить уже созданный объект в окне? #7
Цитата Сообщение от SEGNET Посмотреть сообщение
Петцольд Ч. Программирование для Windows 95 - на русском и с примерами. Необязательно ее читать с начала. Можно по содержанию пробежаться. Если у вас не стоит цель обучится Winapi, тогда действительно не имеет смысла тратить столько времени.
Есть такая книга. Только вот по названию тем не можешь найти то, что тебе нужно. Когда узнал про коды. Тогда просто в поиске находишь эти коды и становится понятно. Там нет тем про позиционирование объектов. Альтернативной настройки шрифтов, цветов и размеров. Как на примерах вставлять кнопки. Может быть эта книга становится понятна только опытным специалистам в виде справочника. А новичкам приходится даже над книгами потеть. В общем книги это не для новичков. Нужны просто примеры с кодами. Но чтоб примеры были жизненные, а не для спецов в виде справочника.
Yandex
Объявления
08.01.2017, 08:26     Как переместить уже созданный объект в окне?
Ответ Создать тему
Опции темы

Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru