|
#1
|
|||
|
|||
Image на API Fomr
Добрый вечер, подскажите как загрузить картинку на форму (форма API), если картинка расположена в той же папке что и программа ну или в ресурсах.
|
#2
|
||||
|
||||
Оффтоп: Формы есть только в vcl среды, в виндах (они ведь - окна!) такого понятия нету совсем, отсюда следует что нет и в WinAPI
Можно так из файла Код:
var hBMP: hBitmap; ... hBMP:= LoadImage(hInstance, PChar(Path + 'Some.bmp'), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); SendDlgItemMessage(hWin, 200, STM_SETIMAGE, IMAGE_BITMAP, hBMP); Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Спасибо, буду пробывать)
|
#4
|
|||
|
|||
а кто может дать наглядный пример загрузке картинки на фон winapi приложения?
Есть ресурс {$R resources.res}, со следующим содержимым: fon BITMAP fon.bmp. Заранее благодарю. |
#5
|
||||
|
||||
Повторюсь, используйте LoadBitmap
Код:
program Fon; uses Windows, Messages; function MainWndProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall; begin if AMessage = WM_DESTROY then begin PostQuitMessage(0); Result:= 0; Exit; end else Result:= DefWindowProc(Window, AMessage, WParam, LParam); end; {$R resources.res} function InitApplication: Boolean; var wcx: TWndClass; bmp: HBitmap; begin bmp:= LoadBitmap(hInstance,MAKEINTRESOURCE('FON')); wcx.style:= CS_HREDRAW or CS_VREDRAW; wcx.lpfnWndProc:= @MainWndProc; wcx.cbClsExtra:= 0; wcx.cbWndExtra:= 0; wcx.hInstance:= hInstance; wcx.hIcon:= LoadIcon(0, IDI_APPLICATION); wcx.hCursor:= LoadCursor(0, IDC_ARROW); wcx.hbrBackground:= CreatePatternBrush(bmp); wcx.lpszClassName:= PChar('MainWClass'); Result:= RegisterClass(wcx) <> 0; end; function InitInstance: HWND; begin Result:= CreateWindow(PChar('MainWClass'),'Пример', WS_OVERLAPPEDWINDOW, Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), 0, 0, hInstance, nil); end; var hwndMain: HWND; AMessage: msg; begin if (not InitApplication) then MessageBox(0, 'Ошибка регистрации окна', nil, mb_Ok) else begin hwndMain := InitInstance; if (hwndMain = 0) then MessageBox(0, 'Ошибка создания окна', nil, mb_Ok) else begin ShowWindow(hwndMain, CmdShow); UpdateWindow(hwndMain); while (GetMessage(AMessage, 0, 0, 0)) do begin TranslateMessage(AMessage); DispatchMessage(AMessage); end; end; end; end. Я не понял Вашего вопроса, но всё же Вам на него отвечу! |