|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 27, 2004 20:33:00 Как проще всего отобразить битмап в статике? Пытался сделать на основе примеров из масма32, но не вышло :( |
|
|
Дата: Апр 27, 2004 21:00:54 Загрузить битмап из ресурсов (LoadImage) и отправить в статик сообщением STM_SETIMAGE. |
|
|
Дата: Апр 27, 2004 21:02:55 · Поправил: bogrus Если битмап будет в ресурсах , то можно так : invoke LoadImage,hInst,ID_ресурса,IMAGE_BITMAP,0,0,NULL invoke SendMessage,hStatic,STM_SETIMAGE,IMAGE_BITMAP,eaxЕсли битмап будет в файле , то нужно так : .data szImg db "image.bmp",0 .code invoke LoadImage,hInst,offset szImg,IMAGE_BITMAP,0,0,LR_LOADFROMFILE invoke SendMessage,hStatic,STM_SETIMAGE,IMAGE_BITMAP,eax |
|
|
Дата: Апр 28, 2004 20:20:56 Спасибо за ответы. Но это если создать статик через CreateWindow и брать из еах хэндл. А если статик уже есть в ресурсах как быть? Если не сложно, приведите, пожалуйста, пример. |
|
|
Дата: Апр 28, 2004 20:35:19 тогда GetDlgItem его.. ;-) |
|
|
Дата: Апр 28, 2004 20:37:50 · Поправил: bogrus Или послать его ... (статик) На SendDlgItemMessage :) invoke LoadImage,hInst,ID_bmp_ресурса,IMAGE_BITMAP,0,0,NULL invoke SendDlgItemMessage,hDlg,ID_статика,STM_SETIMAGE,IMAGE_BITMAP,eax |
|
|
Дата: Апр 28, 2004 20:53:34 Код у меня такой: .if uMsg==WM_CREATE
invoke GetDlgItem,hWin,2
mov hStatImage, eax
invoke LoadImage,hInstance,700,IMAGE_BITMAP,0,0,NULL
invoke SendMessage,hStatImage,STM_SETIMAGE,IMAGE_BITMAP,eax
В ресурсах: 500 ICON "1.ico" 700 BITMAP "1.bmp" CONTROL "#500",2,"Static",0x50000203,5,0,142,76,0x00000000 Почему-то не пашет :( Подскажите что не так. |
|
|
Дата: Апр 28, 2004 21:03:20 Цепляй сюда весь исходник, а то мне что-то кодить чтоб проверить влом ;-) Кстати, можно заранее положить битмат в нужное место окна ещё при вёрстке rc скрипта и тогда ничего грузить не нужно будет :-) |
|
|
Дата: Апр 28, 2004 21:12:23 · Поправил: bogrus Если hWin у тебя хендл диалога , то вместо WM_CREATE поставь WM_INITDIALOG . Asterix прав , закинь лучше исходник , не всё понятно Доцепляю : DlgProc PROC hDlg:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
.if uMsg == WM_INITDIALOG
invoke GetDlgItem,hDlg,2
mov hStatImage, eax
invoke LoadImage,hInstance,700,IMAGE_BITMAP,0,0,NULL
invoke SendMessage,hStatImage,STM_SETIMAGE,IMAGE_BITMAP,eax
... |
|
|
Дата: Апр 28, 2004 21:52:07 · Поправил: bogrus Замени эту строку CONTROL "#500",2,"Static",0x50000203,5,0,142,76,0x00000000на эту CONTROL "#700",2,"Static",0x5000020E,5,0,142,76,0x00000000Убери LoadImage,SendMessage и получишь самый простой способ , о котором говорил Asterix |
|
|
Дата: Апр 28, 2004 23:09:19 bogrus К слову, этот способ не работает на win16. А вместо "#700" можно прописать просто 700 (без кавычек). |
|
|
Дата: Апр 29, 2004 09:19:03 Спасибо всем большое! Сделал битмап при верстке rc-скрипта. CONTROL 700,2,"Static",0x5000020E,5,0,142,76,0x00000000 В моём случае так действительно проще. Ещё раз всем спасибо :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078 |