Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: 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 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-1087037068
YurikGL
2004-06-12 14:44
2004.07.04
Проблемы образования


3-1086783370
Лера
2004-06-09 16:16
2004.07.04
Direct Oracle Access


9-1045200667
Le!
2003-02-14 08:31
2004.07.04
Искуственный интелект!


3-1086786166
alex_pv
2004-06-09 17:02
2004.07.04
ClientDataSet как добраться до полученных данных???


14-1087201887
infom
2004-06-14 12:31
2004.07.04
Неожиданные проблемы с МатЛабом