Windows externals and the imagePixmapID
Frank D. Engel, Jr.
fde101 at fjrhome.net
Wed Jan 19 19:16:02 EST 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Aha! Turns out I was asking the wrong question, but that code
certainly helped me to find a way to do it.
I ended up using a GDI "DIB Section" object as an intermediary between
the screen-level DDB and the printer DC; it went something like this
(slightly modified to simplify, though coded in an external I'm working
on for Rev):
HDC printerDC; /* provided target DC */
HBITMAP screenDDB, sect, oldbits; /* screenDDB is the imagePixmapID
from Rev */
BITMAP bmap;
int dx, dy, dw, dh; /* provided position and size on printed page */
if (GetObject(screenDDB, sizeof(BITMAP), &bmap) != sizeof(BITMAP))
<failure-exit>;
/* create a DIB Section version of the bitmap */
sect = CopyImage(screenDDB, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
/* select it into a memory region */
memDC = CreateCompatibleDC(printerDC);
oldbits = (HBITMAP)SelectObject(memDC, sect);
/* render onto printer page */
StretchBlt(printerDC, dx, dy, dw, dh,
memDC, 0, 0, bmap.bmWidth, bmap.bmHeight, SRCCOPY);
/* clean up */
SelectObject(memDC, oldbits);
DeleteDC(memDC);
DeleteObject(sect);
Now I'll be able to sleep tonight (well, at least the chances of it are
improved)!
Thank you.
On Jan 19, 2005, at 3:41 PM, Thierry Arbellot wrote:
> I use the following code to create a screen HDC and attach the
> imagePixmapID to it.
>
> long imagePixmapId;
> HBITMAP screenImageBM;
> HDC theHdc;
>
> theHdc = CreateCompatibleDC(NULL); // screen DC
> screenImageBM = (HBITMAP) imagePixmapId;
> SelectObject(theHdc,screenImageBM);
>
> I hope it helps
>
> Thierry
>
> On 2005, Jan 19, , at 21:26, Frank D. Engel, Jr. wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Hmm, anyone know how I can use the Win32 API to obtain a HDC for that
>> HBITMAP? I'm looking for a way to render the bitmap into another
>> device context (specifically, a printer device context). Using the
>> imagePixmapID seemed to me the easiest way to get the image across
>> from a Rev stack to Win32 api code in an external, but I am starting
>> to wonder...
>>
>> On Jan 19, 2005, at 9:31 AM, Frank D. Engel, Jr. wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Thank you!
>>>
>>> On Jan 19, 2005, at 4:47 AM, Thierry Arbellot wrote:
>>>
>>>> imagePixmapID is an HBITMAP
>>>>
>>>> Thierry.
>>>>
>>>> On 2005, Jan 18, , at 19:44, Frank D. Engel, Jr. wrote:
>>>>
>>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>>> Hash: SHA1
>>>>>
>>>>> Does anyone know what form the imagePixmapID takes under the
>>>>> Windows engine for Rev? Is it an HBITMAP or an HDC, or something
>>>>> else entirely?
>>>>>
>>>>> Thank you!
>>>>>
>>>>> - - -----------------------------------------------------------
>>>>> Frank D. Engel, Jr. <fde101 at fjrhome.net>
>>>>>
>>>>> $ ln -s /usr/share/kjvbible /usr/manual
>>>>> $ true | cat /usr/manual | grep "John 3:16"
>>>>> John 3:16 For God so loved the world, that he gave his only
>>>>> begotten Son, that whosoever believeth in him should not perish,
>>>>> but have everlasting life.
>>>>> -----BEGIN PGP SIGNATURE-----
>>>>> Version: GnuPG v1.2.4 (Darwin)
>>>>>
>>>>> iD8DBQFB7VkN7aqtWrR9cZoRAqMYAJ4ooEuOcblOnUUz2LLwcl7OxvahyQCfaQrX
>>>>> tHEgStdm/CnD1DLueFNoM2Y=
>>>>> =wV7X
>>>>> -----END PGP SIGNATURE-----
>>>>>
>>>>>
>>>>>
>>>>> ___________________________________________________________
>>>>> $0 Web Hosting with up to 120MB web space, 1000 MB Transfer
>>>>> 10 Personalized POP and Web E-mail Accounts, and much more.
>>>>> Signup at www.doteasy.com
>>>>>
>>>>> _______________________________________________
>>>>> use-revolution mailing list
>>>>> use-revolution at lists.runrev.com
>>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> use-revolution mailing list
>>>> use-revolution at lists.runrev.com
>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>
>>>>
>>> - -----------------------------------------------------------
>>> Frank D. Engel, Jr. <fde101 at fjrhome.net>
>>>
>>> $ ln -s /usr/share/kjvbible /usr/manual
>>> $ true | cat /usr/manual | grep "John 3:16"
>>> John 3:16 For God so loved the world, that he gave his only begotten
>>> Son, that whosoever believeth in him should not perish, but have
>>> everlasting life.
>>> $
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.2.4 (Darwin)
>>>
>>> iD8DBQFB7m9Y7aqtWrR9cZoRAlT3AJ4qXzEZz8rC3xovVx5tsVeF8uLJfwCffUHH
>>> Ntbc+NXKQLO4GFuyHWu9URw=
>>> =SBGG
>>> -----END PGP SIGNATURE-----
>>>
>>>
>>>
>>> ___________________________________________________________
>>> $0 Web Hosting with up to 120MB web space, 1000 MB Transfer
>>> 10 Personalized POP and Web E-mail Accounts, and much more.
>>> Signup at www.doteasy.com
>>>
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>
>>>
>> - -----------------------------------------------------------
>> Frank D. Engel, Jr. <fde101 at fjrhome.net>
>>
>> $ ln -s /usr/share/kjvbible /usr/manual
>> $ true | cat /usr/manual | grep "John 3:16"
>> John 3:16 For God so loved the world, that he gave his only begotten
>> Son, that whosoever believeth in him should not perish, but have
>> everlasting life.
>> $
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.2.4 (Darwin)
>>
>> iD8DBQFB7sJk7aqtWrR9cZoRAo9cAJ9yP2YKhPCrO4QZJMZZWX85rJDJJgCfadqz
>> SWzB05iunT27tCMSBe5rfgo=
>> =Ue8d
>> -----END PGP SIGNATURE-----
>>
>>
>>
>> ___________________________________________________________
>> $0 Web Hosting with up to 120MB web space, 1000 MB Transfer
>> 10 Personalized POP and Web E-mail Accounts, and much more.
>> Signup at www.doteasy.com
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>
- - -----------------------------------------------------------
Frank D. Engel, Jr. <fde101 at fjrhome.net>
$ ln -s /usr/share/kjvbible /usr/manual
$ true | cat /usr/manual | grep "John 3:16"
John 3:16 For God so loved the world, that he gave his only begotten
Son, that whosoever believeth in him should not perish, but have
everlasting life.
$
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFB7vhD7aqtWrR9cZoRAj6tAJ0eX/gnbU49knqP2IY5p7z+nyNB+gCfWIfH
Q80mj9iSN3RANbtszgxf1FY=
=Uuh+
-----END PGP SIGNATURE-----
___________________________________________________________
$0 Web Hosting with up to 120MB web space, 1000 MB Transfer
10 Personalized POP and Web E-mail Accounts, and much more.
Signup at www.doteasy.com
More information about the use-livecode
mailing list