Но он написан на Delphi.
А я изучаю C++, пишу в Билдере

Дайте пожалуйста какой-то примерчик
для Билдера с такой же формой в окне чата.
Желание сделать пару графических плагинов огромное.
Без вас мне не справится.
Вот допишу плагин и попробую!Cilvay писал(а):делай так же как в делфи - тупо портируй код.
Берешь строку из делфи и переписываешь тоже самое с синтаксисом си. Должно работать.
Исходник примера напрямую с билдера портирован в делфи
Код: Выделить всё
function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
try
_CwpStruct := Pointer(LParam);
case _CwpStruct.message of
WM_SIZE :
begin
if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
FixWindowPos(form1);
end;
end;
finally
Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
end;
end;
Ну у меня с самого начала вот с этой строкойMaxim Mirgorodsky писал(а):Что именно в этой функции?
Код: Выделить всё
TCWPStruct *_CwpStruct;
Код: Выделить всё
try
_CwpStruct := Pointer(LParam);
case _CwpStruct.message of
WM_SIZE :
begin
if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
FixWindowPos(form1);
end;
end;
finally
Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
end;
100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нетJenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
На вкус и цвет среда разработки разная. По мне проще делфи, вот решил сейчас изучить C#.Cilvay писал(а):100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нетJenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
Код: Выделить всё
function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
try
_CwpStruct := Pointer(LParam);
Код: Выделить всё
BOOL PluginStart(DWORD dwThisPluginID, typeCommFortProcess func1, typeCommFortGetData func2)
{
dwPluginID = dwThisPluginID;
CommFortProcess = func1;
CommFortGetData = func2;
ChatWindow = FindWindow("TfChatClient", NULL);
ChannelsPanel = FindWindowEx(ChatWindow, 0, "TPanel", NULL);
if ( CallWndProcHookHandle == 0 )
{
CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );
}
else
{
return FALSE;
exit;
}
FHeight = 55;
return TRUE;
}
Код: Выделить всё
CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );