Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 506
1

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

07.01.2017, 17:13. Просмотров 526. Ответов 6
Метки нет (Все метки)

Например, создал я кнопку и потом ее нужно переместить. Как это сделать. Какими командами через WinAPI

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


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

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

Добавлено через 1 минуту
Как у названия кнопки изменить шрифт размер и цвета, не прибегая к рисованию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2017, 17:13
Ответы с готовыми решениями:

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту?
Это можно : Array a(10); a.set(0,5); Array b(a); А это нельзя : Array a(10); Array b(20);...

Как раскомпоновать созданный уже .EXE?
Есть созданный уже .EXE-шник. Как его разархивировать и увидеть содержание?

Как открыть уже созданный файл Excel?
Кто знает как через С# открыть уже созданный файл excel?

Как добавить поле в уже созданный документ?
В дезайнере добавил парачку полей на форму, вот хочу автоматом пройтись заполнить, а когда открываю...

6
897 / 418 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
07.01.2017, 17:48 2
для двигания окон существуют функции MoveWindow и SetWindowPos

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

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

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

Добавлено через 13 минут
Цитата Сообщение от rao Посмотреть сообщение
для двигания окон существуют функции MoveWindow и SetWindowPos
Цвет кнопки меняется сообщением WM_CTLCOLORBTN
Шрифт меняется сообщением WM_SETFONT
Пользуйся гуглом! или деньгам в кошельке тесно?
Нужен пример кода. Мне это одна фраза ни о чем не говорит я должен видеть связи. Эту инфу, которую кидаете она понятна только для опытных программистов в winApi. А новичкам без полного кода не понять.
0
897 / 418 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
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 с элементами можно вытворять всё что душе угодно.
1
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 506
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 находит дескриптор кнопки по идентификатору для обработчика события. И присваивает дескриптор новой переменной?
Что-то я не догнал этот метод.
0
67 / 67 / 11
Регистрация: 28.12.2012
Сообщений: 471
08.01.2017, 08:18 6
Петцольд Ч. Программирование для Windows 95 - на русском и с примерами. Необязательно ее читать с начала. Можно по содержанию пробежаться. Если у вас не стоит цель обучится Winapi, тогда действительно не имеет смысла тратить столько времени.
0
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 506
08.01.2017, 08:26  [ТС] 7
Цитата Сообщение от SEGNET Посмотреть сообщение
Петцольд Ч. Программирование для Windows 95 - на русском и с примерами. Необязательно ее читать с начала. Можно по содержанию пробежаться. Если у вас не стоит цель обучится Winapi, тогда действительно не имеет смысла тратить столько времени.
Есть такая книга. Только вот по названию тем не можешь найти то, что тебе нужно. Когда узнал про коды. Тогда просто в поиске находишь эти коды и становится понятно. Там нет тем про позиционирование объектов. Альтернативной настройки шрифтов, цветов и размеров. Как на примерах вставлять кнопки. Может быть эта книга становится понятна только опытным специалистам в виде справочника. А новичкам приходится даже над книгами потеть. В общем книги это не для новичков. Нужны просто примеры с кодами. Но чтоб примеры были жизненные, а не для спецов в виде справочника.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2017, 08:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как открыть уже созданный проект в ADT?
После новой установки ADT хотел открыть созданный ранее проект. Однако опция Open project в пункте...

Как запаролить уже созданный архив WinRaR?
Или это невозможно? Я знаю как запаролить архив который собираешься создать. Но как запаролить...

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

как открыть в новом окне только что созданный документ
Привет всем! Че-то не могу найти в хелпе нужную вещь. Подскажите плиз, как открыть в новом окне...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.