IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> общие вопросы по WINAPI
сообщение
Сообщение #21


Гость






Правильно... Осталось теперь реализовать smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


я пока по примеру с вингарда smile.gif
А на изменение размера формы какое сообщение поступает? на WM_RESIZE ругается. Возможно wm_size?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Это смотря когда... Во время изменения размера постоянно приходит WM_SIZING; сразу после того, как пользователь отпустил мышу (размер установлен окончательно) - приходит WM_SIZE.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Спасиб, показываю координаты окна при передвижении и ресайзе
Вот попробовал добавить кнопку в другое окно, и хоть для меня странно, но получилось smile.gif И какие еще чтучки можно сделать? smile.gif
А можно создать кнопку скругленной или вообще другой формы?
И почему после выхода из моей программы кнопка удаляется?

Сообщение отредактировано: Client -


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Гость






Цитата
почему после выхода из моей программы кнопка удаляется?
Хм... Ну, ты же в своей программе регистрируешь класс, и потом его удаляешь? Удалил класс - удалились все объекты этого класса.

Цитата
А можно создать кнопку скругленной или вообще другой формы?
Легко:
Создание круглой кнопки на WinAPI, можно и вообще любой формы, тогда понадобится работать с регионами. Где-то на RSDN еще была статья, если я не ошибаюсь.

Цитата
И какие еще чтучки можно сделать?
Ну, это зависит только от твоей фантазии.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
Удалил класс - удалились все объекты этого класса.
А если не удалять класс утечки памяти не будет? И что такое Instance и HInstance?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Гость






А если ты класс создал, значит должен удалить:
Цитата(MSDN)
Remarks
Before calling this function, an application must destroy all windows created with the specified class.
All window classes that an application registers are unregistered when it terminates.


Цитата
И что такое Instance и HInstance?
Вообще Instance - это Экземпляр. Все остальное - только по коду, телепатия на других форумах. Назвать переменную я могу как хочу, могу вообще hInstance обозвать счетчик цикла.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


При создании класса
hInstance := hInstance;
Хотя у меня нету переменной hInstance. В коде когда навожу мышу показыват что вроде как системная константа blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Гость






Цитата
Хотя у меня нету переменной hInstance
Мало ли, чего у тебя нету. Зато в модуле SysInit она есть, это ID твоей программы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Спасибо за ответы.
Еще пара вопросов и все smile.gif
Суперклассинг. В примере на вингарде создавали едиты и они удалялись при нажатии на них. Тут модернизировали класс едита. А если уже есть эти же самые едиты и на них надо поставить обработчик на нажатие клавиши, то тут как быть? не переделывать класс?
И сабклассинг другого приложения. Есть пример для новичка? Засабклассировать кнопку или едит, а там пример, половина написана на ассемблере. Для меня "без шансов" sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Гость






Цитата
Суперклассинг. В примере на вингарде создавали едиты и они удалялись при нажатии на них. Тут модернизировали класс едита. А если уже есть эти же самые едиты и на них надо поставить обработчик на нажатие клавиши, то тут как быть?
Использовать Сабклассинг: "контроль сообщений окон путем модификации оконной процедуры последних". Пишешь свою оконную функцию, которая обработает события WM_KEYUP/WM_KEYDOWN/WM_CHAR (обычно обработка нажатия клавиши сводится к WM_KEYDOWN), а все остальные события "пропустит" оригинальной оконной функции. И вызываешь свою функцию вместо оригинальной. Суперклассинг здесь не нужен.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Т.е. надо сабклассировать каждый едит?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Гость






Для каждого EDIT-а, для которого надо поймать нажатия, придется подменить оконную функцию. Ты это хотел услышать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Да. Списибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


#include "stdafx.h"
#include "iostream.h"
#include "afxwin.h"

void main()
{
HWND hwnd;
hwnd = GetDesktopWindow();
HDC hdc;
hdc=GetWindowDC(hwnd);
int i;
cin >> i;
CPen pen(PS_SOLID,4,RGB(255,0,0));
SelectObject(hdc,pen);
Ellipse(hdc,-100,-100,100,100);
}
Как будет выглядеть на дельфи эта часть кода
int i; // описание типа integer
cin >> i; //типа read (i) ?
CPen pen(PS_SOLID,4,RGB(255,0,0));


Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Гость






Ну поскольку введенное i нигде не используется, то и на фиг оно не надо... А все остальное - вот так, например:

var
myDC: HDC;
ps: PAINTSTRUCT;

myPen: HPEN;
...
case AMessage of
WM_PAINT:
begin
myDC := BeginPaint(Window, ps);
myPen := CreatePen(PS_SOLID, 4, RGB(255, 0, 0));
SelectObject(myDC, myPen);
Ellipse(myDC, -100, -100, 100, 100);
EndPaint(Window, ps);
Exit(0);
end;
...
правда, много изменений? smile.gif Только вот мой кусок - рабочий, а твой - вряд ли...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
а твой - вряд ли...
взял отсюда
Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.05.2024 2:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name