|
Original bit field: http://noisydisco.free.fr/original.jpg
Stretched bitmap: http://noisydisco.free.fr/stretched.jpg
The target bitmap init code :
BITMAPINFOHEADER bmiHeader;
ZeroMemory( &bmiHeader, sizeof(BITMAPINFOHEADER) );
bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmiHeader.biWidth = _dwBitmapSize.X;
bmiHeader.biHeight = _dwBitmapSize.Y;
bmiHeader.biPlanes = 1;
bmiHeader.biBitCount = 32;
bmiHeader.biCompression = BI_RGB;
_hDC = CreateCompatibleDC( NULL );
_hBitmap = CreateDIBSection( _hDC, (BITMAPINFO*) &bmiHeader,
DIB_RGB_COLORS, (void**) &_pBitmapBits, NULL, 0 );
_hOldBitmap = (HBITMAP) SelectObject( _hDC, _hBitmap );
And the stretch:
StretchDIBits( _hDC,
0, 0, _dwBitmapSize.X, _dwBitmapSize.Y,
0, 0, pbmi->bmiHeader.biWidth, pbmi->bmiHeader.biHeight,
pSource, pbmi, DIB_RGB_COLORS, SRCCOPY );
Everything seems straight forward but I can't make this work.
Where is the problem ?
Thanks for your help
|
|
|
|
|
I think you should use SetStretchBltMode(HDC hDC, int nStretchMode).
Set the mode to HALFTONE before you use StretchDIBits and look if the stretched bitmap looks better. Take a look at the MSDN library for SetStretchBltMode. I think there are some limitations if you use HALFTONE mode!
|
|
|
|
|
Hello,
I would like to handle accelerators like Ctrl+Alt+R in my dialog based app, but can't find any good source for example on doing that. If somebody have noticed somewhere an article or code snippet on doing that, please let me know,
Thanks in advance!
|
|
|
|
|
this site helped me out a lot, hope it will do the same with you
http://www4.ncsu.edu:8030/~jgbishop/codetips/dialog/accelerator_keys.html
Eugi Games
|
|
|
|
|
Thanks !
|
|
|
|
|
I’m writing a kind of spy program. It’s for a good purpose – to protect kids by letting their parents know when they are up to no good. I can monitor system wide keystrokes and mouse clicks, and I can get the text from Edit/Combo boxes of other apps with no problem, but I cannot get the text that has been entered into Edit/Combo boxes on web pages in IE. It seems that these are not normal child windows. Any ideas?
|
|
|
|
|
A good education is better than a controlling spying program.
Don't you agree ?
Marcello
|
|
|
|
|
Ok, so this is starting to get really annoying. Everytime I write some code and I want to go back to it after I turn my pc off I get this error. I tried using the answer to question 2.7 in the debuging questions article and that did not work....I am really confused why this is happening and I have no idea how to fix it. It is really starting to slow me down
Can anyone help me with this?? I have gotten these errors with every MFC program I am writing! Here are the files I'm using.
main.cpp
radio.h
radio.cpp
Here is the errors.
--------------------Configuration: main - Win32 Debug--------------------
Compiling...
main.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Radio::~Radio(void)" (??1Radio@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Radio::Display(int)" (?Display@Radio@@QAEXH@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Radio::Radio(void)" (??0Radio@@QAE@XZ)
Debug/main.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
main.exe - 4 error(s), 0 warning(s)
Please help??????
Thanks everyone!!!!!
|
|
|
|
|
Try including radio.h and radio.cpp before main.cpp - this error usually occurs when the linker cannot resolve the definitions for the Radio class.
Hush,hush...
thought I heard you call my name now.
Kula Shaker.
Amit Dey
Latest articles at CP - Writing Word addins
Office addin
|
|
|
|
|
Maybe I am not getting this right because I am new to this, but what do you mean? I have main.cpp which looks like this:
#include <iostream.h>
#include <afxwin.h>
#include "Radio.h"
int main()
{
Radio x; //x is the object called. It is of class type Radio
int Number = 7;
x.Display(Number);
return 0;
}
Radio.cpp is the definitions of Radio.h. Main.cpp is the main program....I dont understand what you mean??
|
|
|
|
|
#include "Radio.cpp" or add the cpp file to the project and rebuild.
Hush,hush...
thought I heard you call my name now.
Kula Shaker.
Amit Dey
Latest articles at CP - Writing Word addins
Office addin
|
|
|
|
|
Ok, that works! But I have another quick question. I have not had to do this before when compiling C++ projects and I also do not have to do it when I create the project from scratch (I only got this problem when I continued working on a project after I turned my PC off). In both my C++ book and my MFC book they only include the hearder.h file. How come in the books they do not include the header.cpp file? Is this something I am going to have to do with all MFC and C++ projects in the future?
Thank you for your help Kula, this has really been helpful!
|
|
|
|
|
#include "radio.h" into radio.cpp and then #include "radio.h" into main.cpp
That should work!
|
|
|
|
|
I have that and it didnt work
|
|
|
|
|
I'm not sure what compiler you're using, however I use Visual C++ 6.0. When I create a new Win32/Console application and define a new class I simply insert the header file for the class into main.cpp and everything compiles and links just fine. From what I gather of your original post, it sounds like a compiler configuration issue. You might want to consult Microsoft's Knowledge Base just to find out if this is a known issue and if so, how to fix the problem.
I hope this helps.
|
|
|
|
|
I had to readd the files to my workspace for some odd reason. Thanks for all of your help!
|
|
|
|
|
Can anyone point me in the right direction? I have been building a audio app for a couple of months based on DirectMusic, and I have had problems looping .wavs. I'm loading them into a segment, (after the usual initialisation) setting the length, and specifying looping points, but on play back the segments play the entire file and loop from start to finish.
I suspect I am missing out a setup step, but the documentation is pants, and I can't seem to find any tutorials that deal with this. Any help would be greatly appreciated.
|
|
|
|
|
Theres a container class MyClass<t> which has in it a class MyB (declarted in the h file). I am implementing the constructor of MyB. So in the cpp file does it look like:
MyClass<t>::MyB::MyB()
{
}
?
thanks,
ns
|
|
|
|
|
nss wrote:
MyClass::MyB::MyB()
{
}
That looks correct to me.
Happy Programming!
WWW::CodeProject::BNEACETP
|
|
|
|
|
Appreciate the response.Good to get the go-ahead....
ns
|
|
|
|
|
You're welcome!
Happy Programming!
WWW::CodeProject::BNEACETP
|
|
|
|
|
Hi
I’ve got an ATL control (ActiveX) which currently exposes a property page that is used to manipulate all the properties in the control (This property page is launched in the usual manner by the user activating the ‘Custom Properties’ item in the container).
However, instead of displaying a property page to manipulate my control, I need to execute an arbitrary piece of code that displays a custom built editor dialog. My problem is that I cannot find out how to execute an arbitrary piece of code in response to the user clicking the “(custom)”
button on the control container’s property pane (or a similarly easy method of the user activating the editor).
One approach that I have considered is to create and show the dialog from the property page’s InitDialog handler, then destroy the property sheet after the custom dialog has exited (The problem here is knowing how to close the entire property sheet and not just the page) - I'm sure there must be other approaches to this problem though.
Thanks
|
|
|
|
|
Hi,
I try to overload the = operator on a class like following,
CString nomZone;
CArray<ccomposantzone, ccomposantzone=""> composantsZone;
CZone &operator= (const CZone &zone)
{return CZone(zone.nomZone, &(zone.composantsZone));}
but when I build I get this message :
error C2665: 'CZone::CZone' : none of the 4 overloads can convert parameter 2 from type 'const class CArray<class ccomposantzone,class="" ccomposantzone=""> *'
Any idea could help,
thanks,
Pierre
|
|
|
|
|
Do you have a constructor defined for your CZone class that looks similar to this?:
class CZone
{
CZone( CString strNomZone, CArray* pComposantsZoneArray );
};
Another way to implement operator=() is
const CZone& operator=(const CZone& cZone )
{
nomZone = cZone.nomZone;
composantsZone = cZone.composantsZone;
return *this;
}
____________________________________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. (Rich Cook)
|
|
|
|
|
Your operator= method is flawed in many ways. The most notable flaw is that you are returning a dangling reference. You return a reference to a temporary object - an object which is dead after the operator= has returned.
Second, a operator= should return *this so that you do not break the syntax and semantics of obj1 = obj2 = obj3 /* and so on */ ;
As for your error message: Obviously you do not have a CZone(CString, const CArray*) or CZone(const CString&, const CArray*) constructor. Your parameter, zone is const. Hence zone.nomZone and zone.composantsZone are const too.
--
C'est normal!
|
|
|
|