Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

TextOut в win2000   Найти похожие ветки 

 
AllDer   (2004-09-10 16:48) [0]

проблемы с обнавлением текста
форма апи-ставлю
таймер  SetTimer(hwnd,1,10000,@UP);

procedure UP;  // тут текст выводится
begin
TextOut( hdc,0,0,PChar(sizedisk),4);
end;

sizedisk-меняющий текст
все идеально работает в Win98,текст меняется.
В Win2000 c тем же! кодом,работает плохо,
текст меняется не через 10 сек,а вобщее не меняется,
либо через 2 минуты,прописка
TextOut( hdc,0,0,PChar(sizedisk),4);
updateWindow(hwnd); не дает результата
под XP не пробывал,но возможен глюк
Может не так работаю с рисованием ?


 
MetalFan ©   (2004-09-10 17:19) [1]

а могит система загружена?


 
Kind   (2004-09-10 22:08) [2]

A hdc у тебя какой?


 
AllDer   (2004-09-10 22:27) [3]

>A hdc у тебя какой?
в смысле ?
получаю так hdc:=getDC(hwnd);
где hwnd:=CreateWindow(..главное окно

как бы еще обновить,
выяснил что с тем работает кодом!
а не работает с трейдом в Win2000 (win98 - все ОК!)
может потому что у меня это в триде крутится,
procedure UP;stdcall;  // тут текст выводится
begin
TextOut( hdc,0,0,PChar(sizedisk),4);
end;

запуск естественно CreateThread(
сам то он выполняется,а вот обновление не синхронное!


 
AllDer   (2004-09-11 14:53) [4]

да действительно не обнавляется,если,только
окно какое нубудь поверху не пустить(поверх моего),а потом
свернуть-тогда обновится

!Код (скомплируйте и посмотрите в Win2000\XP)

для проверочки я повесил секундное обнавление
и убрал все лишнее
в Win98 секунды идут,в других плохо,
что посоветуете эксперты?

uses
 Windows, Messages;
implementation
const
 AppName = "TForm1";

var
 hWnd: DWord;
 Msg: TMsg;
 WndClass: TWndClassEx;
 hdc:dword;
 disksize:cardinal;
 id:dword;
 test:word;   // Тест  вывода на экран
//-----------------------------------------------------

function WndFunc(hWnd, Msg: DWord; wParam, lParam: integer): integer; stdcall;
begin
 if Msg = WM_Destroy
    then begin
           PostQuitMessage(0);
           Result := 0;
         end
    else Result := DefWindowProc(hWnd, Msg, wParam, lParam);
end;

procedure UP;stdcall;  // проверка вывода
label a;
var
buf:string;
 begin
 a:
 sleep(800);
test:=test+1; // test count
str(test,buf);
TextOut( hdc,0,0,PChar( buf),5);
UpdateWindow(hwnd);
goto a;
end;

begin
WndClass.cbSize:=sizeof(WndClass);
WndClass.style:=CS_GLOBALCLASS;
WndClass.lpfnWndProc:=@WndFunc;
WndClass.cbClsExtra:=0;
WndClass.cbWndExtra:=0;
WndClass.hInstance:=HInstance;
WndClass.hIcon:=LoadIcon(0,0);
WndClass.hCursor:=LoadCursor(0,idc_arrow);
WndClass.hbrBackground:=COLOR_BTNFACE+1;
WndClass.lpszMenuName:=nil;
WndClass.lpszClassName:=AppName;

WndClass.hInstance := hInstance;
 RegisterClassEx(WndClass);
hWnd := CreateWindowEx(
 0,AppName,AppName,
 ws_overlappedwindow ,
 300,200,155,120,0,0,hInstance,Nil);

 hdc:=getDC(hWnd);
ShowWindow(hWnd,CmdShow);
CreateThread(nil,0,@UP,0,0,id);
while  GetMessage(Msg, 0, 0, 0)do ;
begin
     TranslateMessage(Msg);
     DispatchMessage(Msg);
    end;
Halt(Msg.wParam);
end.


 
AllDer   (2004-09-11 22:19) [5]

никто незнает?


 
Polevi ©   (2004-09-12 19:35) [6]

неправильно работаешь, рисовать надо в WM_PAINT, по таймеру InvalidateRect


 
AllDer   (2004-09-18 14:52) [7]

а кто сделать может?
чтоб готовый код был,SetTimer не применять
для подробностей пишите (а то это commerce уже wmr_wmz)
marinazolotay@mail.ru



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-1097212972
Dr. Genius
2004-10-08 09:22
2004.10.24
Сколько файлов в папке?


14-1096972138
Kadr
2004-10-05 14:28
2004.10.24
Ваше мнение?


14-1096719098
Piter
2004-10-02 16:11
2004.10.24
Как узнать размеры максимизированной формы?


9-1087948839
Алекс А
2004-06-23 04:00
2004.10.24
GLScene овский редактор ODE: Как можно из него сохранять модели ?


1-1097223580
TUser
2004-10-08 12:19
2004.10.24
ShareMem and C





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский