Вторник, 23.04.2024, 19:23
Приветствую Вас Гость

LabSoft

Меню сайта
Категории каталога
Статьи по кодингу [24]
Материалы по кодингу
КреатиFF [144]
Рассказы, истории, анекдоты...
Разное [8]
Советы, трюки, полезные рекомендации, статьи о новом и забытом старом...
Наш опрос
Чего не хватает на сайте?
Всего ответов: 8
Главная » Статьи » Статьи по кодингу

Отображение картинки в форме. [Delphi + WinAPI]
Как приятны программы написанные на "чистом" WinAPI... Продолжаем курс самообразования - теперь загрузим на форму картинку, в данном случает это будет растровый рисунок my_caption.bmp. Думаю с разбором кода проблем быть не должно... весь код закоментирован (по возможности... =) ).

program API_bitmap;
uses
windows,
messages,
commctrl;
var
WinClass:TWndClass; //класс для главного окна
Image1, hInst, Handle, hFont:HWND;
Bmp:HBITMAP;
Msg:TMSG; //месага

procedure Close; //закрытие проги
begin
DeleteObject(hFont); //удаление шрифта
UnRegisterClass('TForm', hInst); //уничтожаем окно
ExitProcess(hInst); //... и уничтожаем процесс
end;

//обработчик сообщений
function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall;
begin
Result := DefWindowProc(hwnd, msg, wparam, lparam);
case Msg of
WM_DESTROY: Close;
end;
end;

begin
hInst := GetModuleHandle(nil);
with WinClass do
begin
Style:=CS_PARENTDC; //стиль окна
lpfnWndProc:= @WindowProc;
hInstance:= hInst;
hbrBackground:=COLOR_BTNFACE+2; //фон главного окна
lpszClassName := 'TForm'; //окно
hCursor:= LoadCursor(0, IDC_ARROW); //загрузка курсора
end;
InitCommonControls;
RegisterClass(WinClass);

// Создание главного окна программы
Handle:=CreateWindowEx(0, 'TForm', 'Форма на WinAPI', WS_OVERLAPPEDWINDOW or
WS_VISIBLE or WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SYSMENU,
86, 26, 192, 116
0, 0, hInst, nil);

// Создание шрифта
hFont:=CreateFont(-11, 0, 0, 0, 0, 0, 0, 0,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');

Image1:=CreateWindow('Static',
'' , WS_CHILD or SS_BITMAP or WS_VISIBLE,
0, 0, 192, 116,
Handle, 0, hInst, nil); //создаем Image186, 26, 192, 116
SendMessage(Image1, WM_SETFONT, hFont, 0);
Bmp:=LoadImage(HInstance,'D:\image\my_caption.bmp',
IMAGE_BITMAP,0,0,LR_LOADFROMFILE); //создаем...
SendMessage(Image1, STM_SETIMAGE, IMAGE_BITMAP, Bmp); //сообщение

while(GetMessage(Msg, 0, 0, 0)) do //здесь обработка зообщений
begin
TranslateMessage(Msg); //смотрим сообщения
DispatchMessage(Msg); //удаляем их из очереди
end;
end.

Категория: Статьи по кодингу | Добавил: Jimmy (01.03.2008) | Автор: LabSoft
Просмотров: 3122 | Комментарии: 5 | Рейтинг: 0.0/0 |
Всего комментариев: 3
3 paicilbople  
0
Прикольный ресурс в сети я нашёл! Вот в yahoo не умышленно обнаружил информацию http://rentrealtycrimea.com/kvartiry-dlitelno/page/5/ - сдам квартиру в Симферополе Украина
и стал злым. Кстати забыл поздороваться! В общем сдам квартиру Крым
,я зачитал и оперативно раздуплился, что проживание классная вещь – раз имеют место такие квартиры. Поэтому каждому рекомендую url-адрес http://rentrealtycrimea.com с недвижимостью Крыма.

2 diokdoorFup  
0
Мне в том году дали линк: http://srub-dizain.ru/pilomaterial - обрезная доска от производителя Александров
и я был удивлён! Мне тогда срочно нужен был толстый профилированный брус. В общем пройдя туда и пошёл оформлять заказ! Там конечно всё смешно сделано и сухой брус от производителя трудно купить. Всему этому действию сопутствовала трудная навигация ресурса, которую быстро обнаружил.Очень хорошо конечно то, что это завод по изготовлению бруса естественной влажности – но шаблон сайта стрёмный.

1 артем  
0
Подскажите а как загрузить картинку из ресурса, а не из файла?

Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0