- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am learning Quick Win and am trying to display a Text and Image using the following commands:
retlog = DlgSet(dig, DC_EDIT1, Test' )
retlog = DlgSet(dig, DC_STATIC1, IDB_BITMAP2)
The text works fine, but not the static image. I thought of trying DLGSENDCTRLMESSAGE, but not sure what T_MSG in documentation refers to:
retint = DLGSENDCTRLMESSAGE (dlg, IDC_STATIC1, T_MSG???,0,IDB_BITMAP2)
I would appreciate any help on this.
Thanks
Rajesh
I am learning Quick Win and am trying to display a Text and Image using the following commands:
retlog = DlgSet(dig, DC_EDIT1, Test' )
retlog = DlgSet(dig, DC_STATIC1, IDB_BITMAP2)
The text works fine, but not the static image. I thought of trying DLGSENDCTRLMESSAGE, but not sure what T_MSG in documentation refers to:
retint = DLGSENDCTRLMESSAGE (dlg, IDC_STATIC1, T_MSG???,0,IDB_BITMAP2)
I would appreciate any help on this.
Thanks
Rajesh
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Rajesh,
The message you're looking for is STM_SETIMAGE, with arguments IMAGE_BITMAP and hImage; hImage, however, is Windows handle of the bitmap. You can load a bitmap from resource
using
However, this makes sense only if you want to change the bitmap at run-time; you can add a bitmap into the dialog at design-time, from resource editor -- just add a "Picture" control from the "Controls" toolbar,
select "Type: Bitmap" in its "Properties" dialog, and then select bitmap's ID from the "Image" combo. Even if you use DlgSendCtrlMessage, the control you want to assign the bitmap must be of type "Picture" as described above.
Jugoslav
The message you're looking for is STM_SETIMAGE, with arguments IMAGE_BITMAP and hImage; hImage, however, is Windows handle of the bitmap. You can load a bitmap from resource
using
USE DFWIN ... hImage=LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP2))
However, this makes sense only if you want to change the bitmap at run-time; you can add a bitmap into the dialog at design-time, from resource editor -- just add a "Picture" control from the "Controls" toolbar,
select "Type: Bitmap" in its "Properties" dialog, and then select bitmap's ID from the "Image" combo. Even if you use DlgSendCtrlMessage, the control you want to assign the bitmap must be of type "Picture" as described above.
Jugoslav
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jugoslav,
Thanks. Yes, I want to change the image during run time. And so I tried:
hImage=LoadBitmap(GetModuleHandle(Null), MAKEINTRESOURCE(IDB_BITMAP2))
n = DLGSENDCTRLMESSAGE(dlg,idc_static1, STM_SETIMAGE,
IMAGE_BITMAP,hImage)
n = DlgModal(dlg)
But I get a message to the effect that STM_SETIMAGE and IMAGE_BITMAP are not defined. Should I be declaring them as some type, or did I interpret your instructions incorrectly?
Thanks
Rajesh
Thanks. Yes, I want to change the image during run time. And so I tried:
hImage=LoadBitmap(GetModuleHandle(Null), MAKEINTRESOURCE(IDB_BITMAP2))
n = DLGSENDCTRLMESSAGE(dlg,idc_static1, STM_SETIMAGE,
IMAGE_BITMAP,hImage)
n = DlgModal(dlg)
But I get a message to the effect that STM_SETIMAGE and IMAGE_BITMAP are not defined. Should I be declaring them as some type, or did I interpret your instructions incorrectly?
Thanks
Rajesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You did interpret them correctly; however, the "compilability" of the code depends on version of CVF you have: older versions (up to 6.0 AFAIK) don't have complete declarations in DFWIN module. Here are the correct declarations for names in question which you may include in a separate module or declare them directly in the code:
With declarations above, replace LoadImage with LoadImageA in the code.
(uh, it's difficult to explain why renaming is necessary).
One more note: be aware that DlgSendCtrlMessage (as far as I know) works only from callback functions (the ones you register with DlgSetSub);
it won't work in the same routine where you call DlgInit...DlgModal. If you
want to set the bitmap initially in the dialog, make a dialog "startup" routine, in the following way:
Regards
Jugoslav
INTEGER,PARAMETER:: STM_SETIMAGE =#0172 INTEGER,PARAMETER:: STM_GETIMAGE =#0173 INTEGER,PARAMETER:: IMAGE_BITMAP =0 INTEGER,PARAMETER:: IMAGE_ICON =1 INTEGER,PARAMETER:: IMAGE_CURSOR =2 INTEGER,PARAMETER:: IMAGE_ENHMETAFILE =3 INTEGER,PARAMETER:: LR_DEFAULTCOLOR =#0000 INTEGER,PARAMETER:: LR_MONOCHROME =#0001 INTEGER,PARAMETER:: LR_COLOR =#0002 INTEGER,PARAMETER:: LR_COPYRETURNORG =#0004 INTEGER,PARAMETER:: LR_COPYDELETEORG =#0008 INTEGER,PARAMETER:: LR_LOADFROMFILE =#0010 INTEGER,PARAMETER:: LR_LOADTRANSPARENT =#0020 INTEGER,PARAMETER:: LR_DEFAULTSIZE =#0040 INTEGER,PARAMETER:: LR_LOADMAP3DCOLORS =#1000 INTEGER,PARAMETER:: LR_CREATEDIBSECTION =#2000 INTEGER,PARAMETER:: LR_COPYFROMRESOURCE =#4000 INTEGER,PARAMETER:: LR_SHARED =#8000 !DEC$OBJCOMMENT LIB: 'User32.lib' INTERFACE INTEGER(4) FUNCTION LoadImageA(hInst,lpszName,uType,cxDesired, & cyDesired,fuLoad) !MS$ATTRIBUTES STDCALL, ALIAS : '_LoadImageA@24' :: LoadImageA INTEGER hInst INTEGER lpszName INTEGER uType INTEGER cxDesired INTEGER cyDesired INTEGER fuLoad END FUNCTION LoadImageA END INTERFACE
With declarations above, replace LoadImage with LoadImageA in the code.
(uh, it's difficult to explain why renaming is necessary).
One more note: be aware that DlgSendCtrlMessage (as far as I know) works only from callback functions (the ones you register with DlgSetSub);
it won't work in the same routine where you call DlgInit...DlgModal. If you
want to set the bitmap initially in the dialog, make a dialog "startup" routine, in the following way:
iSt=DlgInit(... iSt=DlgSetSub(Dlg, IDD_DIALOG_1, OnDlgInit) ... SUBROUTINE OnDlgInit(Dlg, ID, iAction) ... iSt=DlgSendCtrlMessage(... END SUBROUTINE
Regards
Jugoslav

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page