Вниз
Скачать: CL | DM;

Не могу нормально изменить размеры окна   Найти похожие ветки 

← →
Aleksandr.   (2004-05-27 13:39) [0]

Функцией CreateWindowEx создаю окно, затем в него пишется текст. Процедура, записываюшая в него текст посылкой сообщения, сначала вычисляет ширину текста по DC этого окна:

procedure WriteWaiter(MsgText : string);
var
 P     : size;
 DC    : HDC;
 R, T  : TRect;
begin
 if WaitFormHandle<>0 then begin //Нэндл апишного окна
   DC:=GetDC(WaitFormHandle);
   try
     GetTextExtentPoint32(DC,PChar(MsgText),length(MsgText),P);
   finally
     ReleaseDC(WaitFormHandle,DC)
   end;
   GetWindowRect(WaitFormHandle,T); //предыдущий размер
   if P.cx>T.Right-T.Left then begin //
     GetWindowRect(GetDesktopWindow,R);  //размер экрана
     SetWindowPos(WaitformHandle,0,R.Left+((R.Right-P.cx) div 2),R.Top+((R.Bottom-P.cy) div 2),
                  P.cx,T.Bottom-T.Top,{SWP_NOACTIVATE OR} swp_DrawFrame);
     UpdateWindow(WaitFormHandle)
   end;
  // посылаем текст надстройкой над PostMessage
   PostStrMessage(WaitFormHandle,WM_SetUserText,MsgText);
 end
end;


И что-то не так с этим кодом, потому что окно получается срезанное справа (нет рамки), а при посылке следующего текста оно смещается влево, и текст в нем, рисующийся

DrawText(DC,PChar(s),-1,R,dt_Center+dt_VCenter+DT_END_ELLIPSIS)

после смены размера теряет выключку по центру.


← →
Игорь Шевченко ©   (2004-05-27 13:59) [1]


> GetWindowRect(WaitFormHandle,T); //предыдущий размер


Может, GetClientRect ?


← →
Aleksandr.   (2004-05-27 14:14) [2]

А чем отличается?


← →
Shkut ©   (2004-05-27 17:41) [3]

А чем отличается Дом от квартиры?
Ответ: доступными размерами.
WindowRect - размеры всего окна, с рамочками и т. д.
ClientRect - свободная для операций область. (грубо)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.033 c
4-1083367298
Bonial
2004-05-01 03:21
2004.07.04
Как работают "часы" в трее?


8-1082345316
CyberStorm
2004-04-19 07:28
2004.07.04
Определение принадлежности точки к кривой Безье


14-1087016392
Думкин
2004-06-12 08:59
2004.07.04
С днем рождения! 12 мая.


1-1087074705
Алекс А
2004-06-13 01:11
2004.07.04
Cледующий код дописывает к файлу перевод строки. Как от этого изб


4-1085380368
_shark_
2004-05-24 10:32
2004.07.04
Мастера, кто нить может подкинуть описание функции




   Наверх