|
Bitmap membitmap(width, height, PixelFormat32bppPARGB);
Graphics memgraphics(&membitmap);
Graphics *g2 = new Graphics(pDc->GetSafeHdc());
g2->DrawImage(&membitmap);
An eg. here
Also, you can use CachedBitmap to optimize the rendering if you are loading and drawing same bitmap again and again.
|
|
|
|
|
Hi John,
You can solve your problem by implementing double buffering concept...ie you can do all the drawings in a bitmap and once your drawings are over just bitblt it in to your client DC..
Regards,
spk521
|
|
|
|
|
This is a very common problem with Windows GUI, and is appropriately named Flickering, and the solution to the problem is called Flicker Free Drawing.
There are 2 parts to fixing the problem:
1. You need to replace the WM_ERASEBKGND (or OnEraseBkgnd() in MFC). The default code for this is to clear the area of the screen, which is the main part of the flickering.
2. You need to use a MemoryDC to draw everything to (this usually includes erasing the background) then the last thing you do is copy the MemoryDC to the screen DC.
There is no need for me to show you any code as there is an endless supply on Google[^] and also right here on the Code Project[^]
|
|
|
|
|
Hi,
I have been working on my project about remotely sensed image processing, and image sequence looping. Each resulting image (in JPEG or PNG format) has approximately 8000 * 4000 pixels. Our users usually want to loop an image sequence (more than 50 images) on the basis of region of interest at a time. Thus, I have to extract the required viewing area from the each image according to user's visualization client size. For example, if user's current client view is 640 * 480, I'll have to find a size of 640 * 480 data block from each original image based on the current x (columns) and y (rows) coordinates, and remap to the client view. When user pans to another viewing area by mouse dragging, our program must accordingly re-load regional data out of each original image as soon as possible.
I know neither JPEG library nor PNG library has some built-in data block read routines, such as
long ReadRectangle (long x0, long y0, long x1, long y1, char* RectData);
long ReadInaRectangle (long x0, long y0, short width, short height, char* RectData);
The built-in JPEG decompressor lacks this kind of functionality. I know that JPEG2000 format has provisions for decompressing a specific area of the image. I'm not entirely sure about JEPG.
Someone suggest that I use CreateFileMapping, MapViewOfFile, and CreateDIBSection to commit the number of bytes of a file mapping to map to the view. Unlike the simple flat binary image formats such *.raw, *.img, and *.bmp, JPEG's Blob will contain not only the image data but also the complicated JPG header. So it's not easy to map a block of data view out of the JPEG file.
Someone recommend that I use image tiling or image pyramid technology to generate sub-images, just like mnay popular, image visualization (Google Earth, and etc.), and GIS applications (WebGIS, and etc.) do.
How can I solve this problem?
Thanks for your help.
Golden Lee
|
|
|
|
|
you can grab kinda-specific sub-rects out of a JPG. it's not a simple task, but if you realllly need it, it can be done. google for "jpegcrop" or "jpegtran". basically, a JPEG is encoded as a series of small rectangles, and (with clever programming) you can address the image data in terms of those rectangles.
i don't think there's a way to do it with PNG, though.
|
|
|
|
|
Hey,
I am working on this existing project and my job is to make some certain action occur when a particular tab in a dialog is selected. With this in mind, I am trying to use CTabCtrl::GetCurSel() but I am not having much success. I am aware that this function returns the zero-based index of the selected tab, which is the problem for me. At first, I used the nPageID value that was used in AddSSLPage() for the tab to see if the GetCurSel() return that particular tab but nothing happens.
At this point, I would like to know how can you find out the index of a tab? Any help will be greatly appreciated!!!
|
|
|
|
|
What do you mean with 'nothing happens'? Maybe you could show us your code, comparing nPageID with GetCurSel() is not a bad approach in itself.
'I would like to know how can you find out the index of a tab'. What do you use to identify a certain tab? Perhaps the CTabCtrl::GetItem[^] function can help you, it links a position to the label.
modified 13-Sep-18 21:01pm.
|
|
|
|
|
Thanks so much!!!
This is what I have
int selectedtab = m_tabcontrol.GetCurSel();
if(selectedtab == 2)
{
do some action
}
So are you saying if the second tab has nPageID is 2 and it is selected GetCurSel() should return 2?
|
|
|
|
|
nPageID is 0-based as well, so it should work nicely with GetCurSel().
The second tab, when you mean second when counting from left to right, would have an nPageID of 1 though; the leftmost tab has nPageID = 0 and then it goes up 1 for each tab to the right.
modified 13-Sep-18 21:01pm.
|
|
|
|
|
Hi,
I have a jpg image on a IPicture* interface and I wish to save it to a file. Looking on MSDN it appears that I can use the IPicture::SaveAsFile() method but I don't relly understand what I need to do to get from a filename to being able to call SaveAsFile().
Could anyone please explain, or better still give me a few pointer (sorry for the pun ) to some code frags?
Thanks
Tony
|
|
|
|
|
I suppose you've to use SHCreateStreamOnFile [^], see, for instance, http://www.ureader.com/msg/1478976.aspx[^] (first reply).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thanks,
That works great!
|
|
|
|
|
You are welcome.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi all,
i m using access with odbc connection and use CRecordset class,
some time the table item have value like "#Error".and if i want to try read this record than exception is generate here.
please tell me how can i remove this record or tell me anything else to handle this.
thanks in advance.
|
|
|
|
|
Le@rner wrote: some time the table item have value like "#Error".
This is information that you should use to diagnose and fix a problem. Rather than just getting rid of the offending record you should try to discover why it is giving the error.
I must get a clever new signature for 2011.
|
|
|
|
|
C language program
Project launched three stepper motor uln2803, parallel port
modified on Sunday, January 30, 2011 6:43 AM
|
|
|
|
|
I want a yacht crewed by blonde nymphets.
I must get a clever new signature for 2011.
|
|
|
|
|
|
While I don't need the yacht.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
A Windows PC is no good at driving stepper motors. What you need is a micro-controller to handle real-time generation of steps.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
|
While I usually try to avoid any message boxes that do not stem from my own code, I now am facing a box that comes from MFC, but the weird thing is that it is empty... which is not that helpful. I stumbled upon this a few times during testing, but never cared since I removed the various DDV_XXX functions later that caused those boxes. This only happens in Release build, which uses statically linked MFC, so I suppose it has something to do with that...
Is there any way to get some more meaningful message boxes with statically linked MFC?
http://www.renderpal.com
http://www.shoran.de
|
|
|
|
|
Do you use custom DDV processing? Can you post the DDV code that causes this? What VS version?
|
|
|
|
|
No and no; the VS version is 2005. If I knew where exactly this errors pops ups, I'd be much further... I am also not sure if it is a DDV call, since I barely use them.
http://www.renderpal.com
http://www.shoran.de
|
|
|
|
|
Daniel 'Tak' M. wrote: I now am facing a box that comes from MFC
What do you mean by this? I don't think you will get random message boxes without writing some code.
Daniel 'Tak' M. wrote: I stumbled upon this a few times during testing, but never cared
Big mistake.
I must get a clever new signature for 2011.
|
|
|
|