Главная страница
    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.049 c
14-1096614062
Nikolay M.
2004-10-01 11:01
2004.10.24
Еще одно обращение к студентам...


3-1096103454
Новенький
2004-09-25 13:10
2004.10.24
Вопрос по Rave Report


4-1095648700
mikl2002
2004-09-20 06:51
2004.10.24
Как программно выбрать звуковуху для вывода звука


1-1097517111
jj
2004-10-11 21:51
2004.10.24
Понимают ли друг друга api ShowWindow и свойство Visible?


1-1097336378
TRyaSS
2004-10-09 19:39
2004.10.24
логорифм по основанию n





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский