Всем доброго времени суток.
Есть вот такой код
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0)
{
return CallNextHookEx(hCBTHook, nCode, wParam, lParam);
}
switch (nCode)
{
case HCBT_MOVESIZE:
{
// width
int cx = GetSystemMetrics(SM_CXSCREEN);
// height
int cy = GetSystemMetrics(SM_CYSCREEN);
::GetCursorPos(&ptMouseInit);
........................
// only right side
if (ptMouseInit.x >= cx - mDiff)
{
HWND hwnd = (HWND)wParam;
RECT *rect = (RECT*)lParam;
hWnd = hwnd;
int ind0 = 0;
RECT rect0;
HWND taskBar = ::FindWindow(L"Shell_traywnd", NULL);
int dif = 0;
if(taskBar && GetWindowRect(taskBar, &rect0))
{
int ind0 = rect0.bottom - rect0.top;
dif = cy - ind0;
char ch0[50];
itoa(dif, ch0, 10);
MessageBoxA(0, ch0, ch0, 0);
}
rect->bottom = dif;
rect->left = cx/2;
rect->top = 0;
rect->right = cx;
return FALSE;
}
........................
}
break;
case HCBT_SETFOCUS:
{
//MessageBoxA(NULL, "CBTProc", "HCBT_SETFOCUS", NULL);/////1
}
break;
}
return CallNextHookEx(hCBTHook, nCode, wParam, lParam);
}
В общем в 7 винде коно нормально меняет размеры, а вот в ХР только перемещается, но не меняет размер

. Может кто подскажет, каким методо в этом случае менять размер ? Кстати SetWindowPos тоже не меняет размер, а только перемещает
25.07.11 17:54: Перенесено модератором из 'C/C++' — Odi$$ey