Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизРазные винды - разный результат Найти похожие ветки
← →
MUHAMOR © (2005-04-28 21:40) [0]Привет всем, у меня такая проблема, пишу прогу использую только API и при изменении размера (использую MoveWindow) окна добавленая часть не ресуется, хотя сам размер изменяется, cудя по рамке при перетаскивании.
И что самое интересное то это не происходит под теми виндами под которыми я компилировал. Т.е. если я в ХР скомпил то в ХР все будет работать, но под 98 будет выше сказаное, и наоборот. Подскажите что нибудь.
← →
Чапаев © (2005-04-29 11:39) [1]Попробуй SetWindowPos().
← →
alpet © (2005-04-29 12:18) [2]Прототип функции в Windows.pas:
function MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; stdcall;
Ты устанавливаешь последний параметр в TRUE ?
← →
DVM © (2005-04-29 14:30) [3]
> Т.е. если я в ХР скомпил то в ХР все будет работать, но
> под 98 будет выше сказаное, и наоборот
Не может такого быть для этой функции по крайней мере.
← →
MUHAMOR © (2005-04-29 17:27) [4]Меняю вот так:
GetWindowRect(MainWND,TmpRect);
Movewindow(MainWnd,TmpRect.Left,TmpRect.Top,614,488,True);
>Не может такого быть для этой функции по крайней мере.
Ну я покрайней мере на 5 машинах тестил, все именно так как есть, я сам с таким первый раз столкнулся, запара полная, просто незнаю что поменять для нормальной работы.
← →
alpet © (2005-04-29 17:40) [5]У тебя в коде ошибки, и указанная функция абсолютно не причем. Выложи лучше код который отвечает за перерисовку окна, если таковой есть (обработчик WM_PAINT).
← →
MUHAMOR © (2005-04-30 08:48) [6]Процедура перерисовки:
Procedure PaintForm;
Var
I:Byte;
Begin
MainFonBB.Draw(MainDC,0,0);
If EditWindow Then Begin
SelectObject(MainDc,MainFonBB.Font);
SetBkMode(MainDc, Windows.TRANSPARENT);
SetTextColor(MainDC, $000000);
TextOut(MainDC,101,41,PChar(TXTEdit),Length(TXTEdit));
SetTextColor(MainDC, $AAFFAA);
TextOut(MainDC,100,40,PChar(TXTEdit),Length(TXTEdit));
SelectObject(MainDc,MainFont);
For I:=1 To 8 Do Begin
TXT:=EditWND[I].Name;
SetBkMode(MainDC, Windows.TRANSPARENT);
SetTextColor(MainDC, $000000);
TextOut(MainDC,EditWND[I].X+2,EditWND[I].Y-18,PChar(EditWnd[I].Name),Length(EditWnd[I].Name));
SetTextColor(MainDC, $FFFFFF);
TextOut(MainDC,EditWND[I].X,EditWND[I].Y-20,PChar(EditWnd[I].Name),Length(EditWnd[I].Name));
End;
End;
If FoundWindow Then Begin
SelectObject(MainDc,MainFonBB.Font);
SetBkMode(MainDc, Windows.TRANSPARENT);
SetTextColor(MainDC, $000000);
TXT:="ÏÎÈÙÅÌ ???";
TextOut(MainDC,48,401,PChar(TXT),Length(TXT));
SetTextColor(MainDC, $AAFFAA);
TextOut(MainDC,48,400,PChar(TXT),Length(TXT));
SelectObject(MainDc,MainFont);
TXT:=EditWND[9].Name;
SetBkMode(MainDC, Windows.TRANSPARENT);
SetTextColor(MainDC, $000000);
TextOut(MainDC,EditWND[9].X+2,EditWND[9].Y-18,PChar(EditWnd[9].Name),Length(EditWnd[9].Name));
SetTextColor(MainDC, $FFFFFF);
TextOut(MainDC,EditWND[9].X,EditWND[9].Y-20,PChar(EditWnd[9].Name),Length(EditWnd[9].Name));
TXT:="Ãäå èñêàòü...";
SetTextColor(MainDC, $000000);
TextOut(MainDC,291,391,PChar(TXT),Length(TXT));
SetTextColor(MainDC, $FFFFFF);
TextOut(MainDC,290,390,PChar(TXT),Length(TXT));
End;
If FoundDRParam Then Begin
SetBkMode(MainDC, Windows.TRANSPARENT);
SelectObject(MainDC,MainFonBB.Font);
SetTextColor(MainDC, $000000);
TXT:="Ñåãîäÿ "+ToDay+" èìåíèííèêè:";
TextOut(MainDC,32,37,PChar(TXT),28);
SetTextColor(MainDC, $9999FF);
TextOut(MainDC,30,35,PChar(TXT),28);
End;
End;
Отрисовка кнопок:
Procedure PaintButton;
Var
I:Byte;
Begin
MainDC:=GetDC(MainWND);
For I:=1 To TotalButton Do
If I=SelectButton Then Begin
If MouseDown Then Button[I].Pic3.Draw(MainDC,Button[I].X,Button[I].Y)
Else
Button[I].Pic2.Draw(MainDC,Button[I].X,Button[I].Y);
End
Else
If Button[I].Visable Then
Button[I].Pic1.Draw(MainDC,Button[I].X,Button[I].Y);
ReleaseDC(MainWND,MainDC);
End;
Обработка WM_PAINT:
WM_PAINT : Begin
BeginPaint(MainWND,PS);
MainDC:=PS.hdc;
PaintForm;
EndPaint(MainWND,PS);
PaintButton;
Result:=0;
Exit;
End;
Ну вот вроде все что связано с перерисовкой.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c