Главная страница
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.042 c
4-1085565849
Yustas
2004-05-26 14:04
2004.07.04
Память


1-1087739472
Islander
2004-06-20 17:51
2004.07.04
Как проверить, раскрыто ли PopupMenu или нет?


3-1086326441
Курдль
2004-06-04 09:20
2004.07.04
Научите меня быть умным! (.NET) Отсоединенное соединение.


14-1087380297
Undert
2004-06-16 14:04
2004.07.04
Опять я все со своим MySQL :)))


14-1087198264
Gero
2004-06-14 11:31
2004.07.04
О программистах(навеяно вопросом о любимой музыке программистов)