Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt

Цитата:
Как понять,окно в котором находится мыша, если окно под мышью, то тебе надо WindowFromPoint(TPoint), иначе используй GetForeGroundWindow так как она вернет верхнее активное окно котору и будет принадлежать мышь.

 
 буду пробовать... Спасибо за совет !!!

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 01:27 14-05-2004
STEEL



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посоветуйте пожалуйста, с чего начать изучать winapi, какие электронные книги почитать? чем отличается winapi от mfs?

Всего записей: 2293 | Зарегистр. 06-01-2002 | Отправлено: 22:42 22-05-2004
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL
Hачать изучать winapi с Рихтера - здесь есть ссылки на его книгу.
Ты имел в виду MFC - это классы, надстроенные над winapi.  


----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 07:52 23-05-2004
STEEL



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Ясно. А нет ли чего-нибудь попроще Рихтера...

Всего записей: 2293 | Зарегистр. 06-01-2002 | Отправлено: 18:52 23-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL
Вначале поставь себе цель, что именно, ты хочешь изучать в АПИ, там ведь много возможностей. Начать советую с создния окон на АПИ. Для этого ищешь либо здесь либо в инете пример создания окон разбираешься спрашиваешь, потом думаешь что ты хочешь делать дальше, опять спрашиваешь как это можно или ищешь сам. В итоге сможешь более или менее разбираться в принципах программирования на АПИ и сможешь уже без особого труда писать свои приложения. Насчет книг, я их честно мало прочел точнее одну, учил АПИ исключительно по хэлпу и прмерам, часами разбираясь в коде, зато потом более понятно, так как когда я начинал этих книг либо не было а потом они стоили очень дорого Хотя азы можно и нужно! изучать по книгам.  


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:27 24-05-2004
BugFixer

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL

Цитата:
А нет ли чего-нибудь попроще Рихтера...  

А чем тебя Рихтер не устраивает?

Всего записей: 482 | Зарегистр. 02-08-2003 | Отправлено: 04:24 24-05-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL
есть и попроще - Petzold
 
хотя вообще писать на винапи достаточно долго и трудно, если только действительно требуется минимум размера и максимум скорости, да легкость по сист. требованиям.
Лучше все таки врапперы использовать.
в общем у всех способов свои недостатки:
winapi - очень сложно и долго, но результат минимален и легок (помимо знания С++ надо еще и в винде хорошо врубаться, поэтому Рихтер и Петзольд необходимы),
mfc - быстро и красиво, как в дельфях, но громоздко и тяжелее по требованиям, плюс зависимость от доп. библиотек,
wtl - gui-врапперы над winapi, но недостаточно компактные (на мой взгляд), хотя по сравнению с mfc - cool.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 05:58 24-05-2004 | Исправлено: vito333, 06:06 24-05-2004
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL

Цитата:
А нет ли чего-нибудь попроще Рихтера

Куда уж попроще ?
Как раз, ИМХО, Рихтер - одна из лучших и классических книг...  
С толковым изложениием основ основ в разных плоскостях.

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 07:03 24-05-2004 | Исправлено: mihas83, 07:05 24-05-2004
STEEL



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в BC++ 6 работать с WINAPI, то есть, как в VC++ создаётся приложение типа WIN32, в BC я что-то не нашёл.

Всего записей: 2293 | Зарегистр. 06-01-2002 | Отправлено: 11:35 24-05-2004
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL

Цитата:
Как в BC++ 6 работать с WINAPI, то есть, как в VC++ создаётся приложение типа WIN32, в BC я что-то не нашёл.

Грубо говоря, это ты получаешь бесплатно визардом за 3 секунды, выбрав один из последних четырех типов проектов...
Но, ИМХО, тебе надо открыть отд. тему...

----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 17:28 24-05-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
STEEL

Цитата:
Как в BC++ 6 работать с WINAPI

 А откуда скачать не подскажешь ???

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 01:12 26-05-2004
STEEL



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react
BC++ ? ТЕбе в варезник.

Всего записей: 2293 | Зарегистр. 06-01-2002 | Отправлено: 10:26 26-05-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, кто-то писал проги с использованием com-порта ??? Если да, киньте плиз примерчик в ПМ, в часности
 нужно чтоб он умел хотя-бы читать битовый поток данных и формировать из них байты...
 
 Заранее огромное спасибо !!!

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 11:19 29-07-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react
пробуй это
 

Цитата:
 
-------------
...write/read a string to/from the serial port ?
-------------
Category: System
 
 
 
function OpenCOMPort: Boolean;
var
   DeviceName: Array[0..80] of Char;
begin
   { First step is to open the communications device for read/write.
     This is achieved using the Win32 'CreateFile' function.
     If it fails, the function returns false.
 
     Wir versuchen, COM1 zu Жffnen.
     Sollte dies fehlschlagen, gibt die Funktion false zurЭck.
   }
   StrPCopy(DeviceName, 'COM1:');
 
   ComFile := CreateFile(DeviceName,
                         GENERIC_READ or GENERIC_WRITE,
                         0,
                         Nil,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         0);
 
   if ComFile = INVALID_HANDLE_VALUE then
      Result := False
   else
      Result := True;
end;
 
 
function SetupCOMPort: Boolean;
const
   RxBufferSize = 256;
   TxBufferSize = 256;
var
   DCB: TDCB;
   Config : String;
   CommTimeouts : TCommTimeouts;
begin
   { We assume that the setup to configure the setup works fine.
     Otherwise the function returns false.
 
     wir gehen davon aus das das Einstellen des COM Ports funktioniert.
     sollte dies fehlschlagen wird der RЭckgabewert auf "FALSE" gesetzt.
   }
 
   Result := True;
 
   if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then
      Result := False;
 
   if not GetCommState(ComFile, DCB) then
      Result := False;
 
   // define the baudrate, parity,...
   // hier die Baudrate, ParitДt usw. konfigurieren
 
   Config := 'baud=9600 parity=n data=8 stop=1';
 
   if not BuildCommDCB(@Config[1], DCB) then
      Result := False;
 
   if not SetCommState(ComFile, DCB) then
      Result := False;
 
   with CommTimeouts do
   begin
      ReadIntervalTimeout := 0;
      ReadTotalTimeoutMultiplier := 0;
      ReadTotalTimeoutConstant := 1000;
      WriteTotalTimeoutMultiplier := 0;
      WriteTotalTimeoutConstant := 1000;
   end;
 
   if not SetCommTimeouts(ComFile, CommTimeouts) then
      Result := False;
end;
 
 
{
  The following is an example of using the 'WriteFile' function
  to write data to the serial port.
 
  Folgendes Beispiel verwendet die 'WriteFile' Funktion, um Daten
  vom seriellen Port zu lesen.
}
 
 
procedure SendText(s: String);
var
   BytesWritten: DWORD;
begin
   {
     Add a word-wrap (#13 + #10) to the string
 
     An den Эbergebenen String einen Zeilenumbruch (#13 + #10) hДngen
   }
   s := s + #13 + #10;
   WriteFile (ComFile, s[1], Length(s), BytesWritten, Nil);
end;
 
 
{
  The following is an example of using the 'ReadFile' function to read
  data from the serial port.
 
  Folgendes Beispiel verwendet die 'ReadFile' Funktion, um Daten
  vom seriellen Port zu lesen.
}
 
 
procedure ReadText : string;
Var
   d: array[1..80] of Char;
   s: String;
   BytesRead, i: Integer;
begin
 result := '';
 if not ReadFile (ComFile, d, sizeof(d), BytesRead, Nil) then
 begin
   { Raise an exception }
 end;
 s := '';
 for i := 1 to BytesRead do s := s + d[I];
 result := s;
end;
 
 
procedure CloseCOMPort;
begin
   // finally close the COM Port!
   // nicht vergessen den COM Port wieder zu schliessen!
   CloseHandle(ComFile);
end;
 
 



----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:50 30-07-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
 А есть примеры на С++ ??? может есть какая-то тестовая программка ???

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 17:10 20-10-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет ли у кого примерчика реализации самодельного контрола типа EDIT или RICHEDIT?
 
============
 
ShIvADeSt
такой вопрос, как к спецу по дельфи - посмотри исходник Bred2 - интересует процедура Open, а именно, почему он феноменально быстро открывает/отображает файлы - может какой момент увидишь - я смотрел, вроде все как обычно, но файл 26 мег я в ричедите (ver.3) отобразить быстрее 5 сек. никак не могу (С++ и winAPI), а бред - 1-2 сек., почти независимо от размера файла. Может это особенность реализации winAPI в дельфи?
Я уже и SETTEXT-ом пробовал, и EVENTMASK обрубил - бред отображает любой файл со скоростью функции ReadFile - она читает быстро, но вот STREAMIN в ричедит - основной у меня тормоз - по идее у бреда должно быть то же самое, ан нет.
Я уж молчу про Бред3 - там похоже вообще свой контрол используется вместо обычного для таких редакторов ричедита и грузится тоже все моментально.
Причем бред2 похоже отображает начало файла и продолжает загрузку, но при этом можно уже чего-то делать с текстом, у меня же пока весь не загрузится - не кажет.
 
В общем, хотелось бы услышать соображения на этот счет.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 18:40 20-10-2004 | Исправлено: vito333, 18:46 20-10-2004
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react

Цитата:
А есть примеры на С++ ??? может есть какая-то тестовая программка ???

http://www.sources.ru/cpp/cpp_system.shtml#7

----------
Если не я за себя, то кто за меня?
Если я только сам по себе - что я?
И если не теперь, то когда? (Гилель)

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 19:52 20-10-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vito333
Посмотрю завтра, сегодня выходной. Кстати у тебя есть сорцы бреда? Если нет, то могу дать

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 21-10-2004
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vito333

Цитата:
...а бред - 1-2 сек., почти независимо от размера файла. Может это особенность реализации winAPI в дельфи?  
Я уже и SETTEXT-ом пробовал, и EVENTMASK обрубил - бред отображает любой файл со скоростью функции ReadFile - она читает быстро, но вот STREAMIN в ричедит - основной у меня тормоз - по идее у бреда должно быть то же самое, ан нет.

А попробуй отладчиком посмотреть, что вызывается.

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 05:03 21-10-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
исходник у меня есть - тот что везде в нете - на 2.1.4 по моему, хотя при этом ЕХЕ 2.1.8.
Смотрю в него, а в результате - фига.
 
TeXpert
 

Цитата:
А попробуй отладчиком посмотреть, что вызывается.

 
я владею только BoundsChecker-ом в виж.студио (((.
 
------------------------------
я причем смотрел скорость загрузки кучи редакторов - очень мало какие грузят быстро (относительно), большинство вообще дохнут даже на средних файлах (5-6 мег) - но БРЕДЫ 2 и 3 - вне конкуренции.
Хочу понять.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 10:59 21-10-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru