Вниз
Скачать: 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
3-1086439511
Настенька
2004-06-05 16:45
2004.07.04
dbgrid и stringgrid


1-1087544244
DimonNew
2004-06-18 11:37
2004.07.04
Как создать таблицу в Word, но чтобы курсор потом был снаружи


14-1086097429
McSimm
2004-06-01 17:43
2004.07.04
Архивы форумов


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


3-1086593173
3APA3A
2004-06-07 11:26
2004.07.04
Есть ли в Paradox е функция now()




   Наверх