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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Nikopoloc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
to ShIvADeSt:
Сенкс за инфу правда я зделал маленьку по другому я с воeму едиту присвоил свой HWND
Код:
 
LTPSTR Text;
HWND hwndEdit;
    hwndEdit = CreateWindow("EDIT",NULL,          
                                    WS_CHILD | WS_VISIBLE |WS_BORDER,  
                                     10, 10, 50, 20,  
                                    hwnd,        
                                    (HMENU) 123,    
                                    (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),  
                                    NULL);  
GetWindowText(hwndEdit,Text,255);
 

Собственно такой ламерский вопрос как LTPSTR конверктировать в float?
 
   

Всего записей: 7 | Зарегистр. 29-09-2005 | Отправлено: 17:37 28-12-2005
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nikopoloc
atof, а лучше strtod - у неё есть контроль ошибок.

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 19:24 28-12-2005
TeXpert



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

Цитата:
Именно с API и стоит начинать. Тогда потом при и использовании RAD не возникнет проблем, когда что-либо не заработает. Когда понимаешь, что лежит в основе, искать источник бага значительно проще. Да и сделать что-либо нестандартное не станет непреодолимой задачей.

Золотые слова -- я бы в шапку вынес, ей-Богу! Сомневающиеся то же самое прочтут в другом виде в Рихтере.
Прошу прошения за офтоп.
 
P. S. Всех с Новым Годом!

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 01:16 04-01-2006 | Исправлено: TeXpert, 01:17 04-01-2006
DJ makrus

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

Цитата:
Именно с API и стоит начинать.

  Вопрос по поводу WinAPI.
Как мне подсказали описание функций WinAPI можно найти в файле win32help.hlp который идет вместе с компиляторами Borland C++ и MS C++ и мож еще с какими. Размер файла около 20 Мб. Собственно просьба как раз в том, что мог бы его кто-нибудь выложить или подсказать может он где лежит.
  Качать Borland C++ и иже с ними не хотелось бы, так как нужен только этот файл.
  И может еще что-нибудь посоветуете по WinAPI, можно на английском, но лучше бы на русском.
 
PS. про MSDN и API-Guide знаю, есть так же 2 книги Румянцева "Азбука программирования в WIN 32 API"

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 01:31 26-01-2006
Abs62



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

Цитата:
Собственно просьба как раз в том, что мог бы его кто-нибудь выложить или подсказать может он где лежит.
 
Например, здесь: _http://www.borland.com/devsupport/borlandcpp/patches/BC52HLP1.ZIP

Цитата:
И может еще что-нибудь посоветуете по WinAPI, можно на английском, но лучше бы на русском.
 
Для начала - Петцольд, естественно. "Программирование для Windows". Там всё даётся практически с нуля, подробно и с примерами. Потом обязательно Рихтер "Создание эффективных WIN32-приложений". Must read. Далее по вкусу.

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 08:29 26-01-2006
DeADMoHAX



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

Цитата:
atof, а лучше strtod - у неё есть контроль ошибок.

 Ды к у них разной предназначение. atof- из строки в флоат, а strtod -> в даубл
Хотя, может, разница не существенна.

----------
dmlabs.ru || hackconnect.ru
Выгодно России – значит, хорошо. Не выгодно России – пошёл на хер.

Всего записей: 1367 | Зарегистр. 03-02-2005 | Отправлено: 08:41 26-01-2006
Abs62



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

Цитата:
atof, _wtof, atoi, _wtoi, _atoi64, _wtoi64, atol, _wtol  
Convert a string to double (atof and _wtof), integer (atoi, _atoi64, _wtoi and _wtoi64), or long integer (atol and _wtol).

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 08:59 26-01-2006
DeADMoHAX



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Abs62
это у них просто в голове каша. В названии функции же сказано -  в флоат, а не в даубл
К тому же в твоей цитате нет strtod'a
 
Added :
Думаешь, я strtod'a не знаю. Просто я про прототипы функций и иногда глупый MSDN
 
Added:
А, ну вас всех. Все равно не поймете.

----------
dmlabs.ru || hackconnect.ru
Выгодно России – значит, хорошо. Не выгодно России – пошёл на хер.

Всего записей: 1367 | Зарегистр. 03-02-2005 | Отправлено: 09:05 26-01-2006 | Исправлено: DeADMoHAX, 10:19 29-01-2006
Abs62



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

Цитата:
это у них просто в голове каша.

Чес-слово, я в этом не виноват.

Цитата:
В названии функции же сказано -  в флоат, а не в даубл

А ты не на название смотри, а на определение в math.h

Цитата:
К тому же в твоей цитате нет strtod'a

Названиям уже не веришь?

Цитата:
double strtod(
   const char *nptr,
   char **endptr  
);
double wcstod(
   const wchar_t *nptr,
   wchar_t **endptr  
);
Each function converts the input string nptr to a double. The strtod function converts nptr to a double-precision value. strtod stops reading the string nptr at the first character it cannot recognize as part of a number. This may be the terminating null character. wcstod is a wide-character version of strtod; its nptr argument is a wide-character string. Otherwise, these functions behave identically.
 

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 19:33 26-01-2006
AdskiCorel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите начинающему программисту
Делаю программу на WinApi, интерфейс MDI. Не как не удается прикрепить ToolBar, он создаеться, но клиентская область родительского(главного) окна некак не смещается(как например при создании меню), отчего получается что тулбар находится поверх полосы(за которую обычно окно перемещают) дочерних окон, приэтом еще глюки с перерисовкой начинаются .
 
Помогите чем можете, может присоздании тулбара в MDI нужно использовать особую функцию или флаг какой-то? Возможно можно как-то принудительно изменить клиентскую область главного окна?

Всего записей: 2 | Зарегистр. 27-01-2006 | Отправлено: 02:39 27-01-2006
Abs62



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

Цитата:
Возможно можно как-то принудительно изменить клиентскую область главного окна?

Именно принудительно это и делается. Только не клиентскую область, а размеры окна-администратора (Client window). Примерно так:

Код:
 
void ResizeClientWindow(HWND hwnd)
{
RECT r;
int n;
  if(hToolBar==NULL) return;
  if(IsIconic(hwnd)) return;
  GetWindowRect(hToolBar,&r);
  n=r.bottom-r.top;
  GetClientRect(hwnd,&r);
  MoveWindow(hClientWindow,r.left,r.top+n,r.right-r.left,
             r.bottom-r.top-n,TRUE);
}
 
 
hwnd здесь - это хэндл обрамляющего окна (Frame window); hToolBar - хэндл тулбара; hClientWindow - хэндл окна-администратора MDI.

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 08:20 27-01-2006
AdskiCorel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все заработало . Спасибо большое Abs62.
 
Единственное хочу уточнить( вдруг еще какой-то ламер вроде меня зайдет с этим же вопросм) Эту функцию нужно применять при WM_SIZE в окнной процедуре ClientWindow, а не FrameWindow(как я по началу пытался), для чего нужно перехватывать его оконную процедуру.

Всего записей: 2 | Зарегистр. 27-01-2006 | Отправлено: 13:33 28-01-2006
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AdskiCorel
Хм. У меня эта функция стоит именно в оконной процедуре FrameWindow, и всё нормально работает. Ведь по идее, размер ClientWindow жёстко связан с размером FrameWindow. Лезть в оконную процедуру ClientWindow надо, если его размер может изменяться при неизменном размере FrameWindow. За счёт чего такое может происходить? Размер клиентской области FrameWindow меняется?
 
PS. И не стоит смешивать понятия "ламер" и "чайник" - это две большие разницы.

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 17:14 28-01-2006
ItsJustMe

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

Цитата:
это у них просто в голове каша. В названии функции же сказано -  в флоат, а не в даубл

А ты сам-то в math.h заглядывал? Видимо, отсутствие этой самой каши в голове является непреодолимым препятствием для умения читать.




Мягче надо быть

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 03:29 29-01-2006 | Исправлено: ShIvADeSt, 01:56 30-01-2006
dan2k5



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, подскажите как...
...сделать multiline edit типа notepad'овского, чтобы при нажатии Enter курсор переходил на новую строку? Посмотрел какой стиль у edit'а в notepad, сделал себе так же - не робит.
 
...растягивать контрол при растягивании окна? есть такой код:

Код:
 
//
case WM_SIZING:
    hList = GetDlgItem(hWnd, IDC_LISTBOX1);
// и дальше мудим с размерами ListBox'а
    SetWindowPos(...);
 

такая штука работает медленно и моргает - где ж это видано каждый раз вызывать GetDlgItem! Однако если воткнуть GetDlgItem в WM_INITDIALOG, нифига не работает, отладчик говорит ERROR_INVALID_WINDOW_HANDLE после SetWindowPos. Причем, пока запущен IDE, все работает как надо Че за баг?
 
Спасибо

Всего записей: 191 | Зарегистр. 14-06-2005 | Отправлено: 10:11 03-02-2006
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Создаешь EDIT со следующими стилями: ES_MULTILINE, ES_WANTRETURN.
2. Насчет моргает, не знаю, не проверял, а вот GetDlgItem вызывать каждый раз не обязательно. Сделай hList глобальной и инициализируй ее при CreateWindow и юзай на здоровье. Handle в процессе работы проги не поменяется

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 12:49 03-02-2006
dan2k5



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ItsJustMe
ES_WANTRETURN помог, спасибо.
Насчет плохих хэндлов - это быд мой глюк.
 
Еще один вопросик (раз вы такие умные ) - работа с SysListView32, а именно: добавление items. Есть ListView с 2 столбцами, в первом имя файла, во втором - CRC32.
В первый столбец item добавляется, а во второй нет

Код:
 
    lvi.iSubItem = 0;
    lvi.pszText = szFile;
    SendDlgItemMessage(hWnd, IDC_LV, LVM_INSERTITEM, 0, &lvi)
//bla-bla-bla
    ...
//
    lvi.pszText = szCRCBuf;
    lvi.iSubItem = 1;
    SendDlgItemMessage(hWnd, IDC_LV, LVM_INSERTITEM, 0, &lvi)
 

Всего записей: 191 | Зарегистр. 14-06-2005 | Отправлено: 13:39 03-02-2006
Lightpower

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как программно записать данные на CD? Кто-нибудь знает?
Или где можно это найти?

Всего записей: 2 | Зарегистр. 03-02-2006 | Отправлено: 15:13 03-02-2006
dyr farot

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
писать можно или через микрософтовский IMAPI:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/imapi/imapi/imapi_reference.asp
или через Nero SDK:
http://ww2.nero.com/nero6/enu/SDK_API.html
http://sourceforge.net/projects/delphineroapi/

Всего записей: 697 | Зарегистр. 03-08-2004 | Отправлено: 16:57 03-02-2006
Lightpower

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dyr Farot, спасибо, исчерпывающий ответ!
Разобрался, всё получилось

Всего записей: 2 | Зарегистр. 03-02-2006 | Отправлено: 17:13 03-02-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 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