Главная страница
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.052 c
1-1087724542
M@verick
2004-06-20 13:42
2004.07.04
Добрый день всем. У меня при запуске отладчика выскакивает


14-1086964674
sniknik
2004-06-11 18:37
2004.07.04
Комп отказывается работать. Что смотреть в первую очередь?


4-1085254938
kat
2004-05-22 23:42
2004.07.04
Как осуществить чтение данных из своей программы


1-1087388202
DimonNew
2004-06-16 16:16
2004.07.04
ListView and subItems


1-1087723329
akvilon
2004-06-20 13:22
2004.07.04
Мои шрифты и Canvas.Font