|
stdafx.h is the right one.
It took me a while to sort this out but the best way to set up the PCH stuff is for stdafx.cpp to have just one include file - stdafx.h and set it to Create precompiled header using stdafx.h. All other source modules should be set to Use precompiled header through stdafx.h. This can make a large difference in compilation times.
The Ten Commandments For C Programmers
|
|
|
|
|
How do I send a message from the CMainFrame to CView?
This seems like a simple question but I just can't find it in my books.
Any help appreciated, thanks
Ali
|
|
|
|
|
Read FAQ.
SDI: CView *pView = AfxGetMainWnd()->GetActiveView();
MDI: CView *pView = AfxGetMainWnd()->MDIGetActive()->GetActiveView();
pView->PostMessage(WM_MESSAGE);
|
|
|
|
|
Hello,
in our company Linux programming is growing, but Windows is also required.
We now examine WxWindows (www.wxwindows.org) which seems a little bit similar to MFC (i.e. event handling).
Are here any experiences with wxwindows in this Forum ?
regards
Frank
|
|
|
|
|
Hello,
I'd like to experiment a bit with using IE to do my dialogs, so that making dialogs would be as easy as editing html. For that I'd have to somehow 'trap' eg clicks on a button in a form, and handle them furter in my application. I know this sort of stuff is possible, but I can't find any documentation on it; I've been looking through msdn but all I get there are some vague descriptions of the various ISomething interfaces. I was more looking for an overview of what is possible and how hard it is. Thanks.
cheers,
roel
|
|
|
|
|
|
These links were exactly what I was looking for, thanks a lot!
cheers,
roel
|
|
|
|
|
Hello,
I'd like to ask you a question about the links that you've given to Roel:
I also use the Paul DiLascia's HTMLCtrl, but I've noticed that each time I navigate to somewhere and then destroy the parent dialog (of the HTMLCtrl) the app leaks some handles.
Have you noticed it too?
I've posted a question to Mr. DiLascia, but meanwhile I'm searching for possible answers...
NOTE:
I've noticed this using perfmon.
Thank you in advance.
|
|
|
|
|
How can I convert an int variable to string? The following code outputs "Yesb" instead of "Yes98":
string s = "Yes" ;<br />
int a = 98 ;<br />
s += a ;<br />
<br />
cout << s << endl ;
Is there a way to do it without using CString?
-----------------------
But what did I do?
|
|
|
|
|
One word :
sprintf
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
you could just do this:
cout << s << a << endl;
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
I forgot to mention:
The new string has to be stored (as a string) in a vector of strings. So printing it immediately was not my original pupose, just an example.
-----------------------
But what did I do?
|
|
|
|
|
Use a stringstream, then extract the string out of it.
Also, look at boost::lexical_cast
HTH
--
Ian Darling
|
|
|
|
|
int i = 98;
char* c;
itoa(i, c, 10);
c now has "98"
|
|
|
|
|
Actually, c now contains nothing because your program just went BOOM.
int i = 98;
char s [64];
itoa (i, s, 10);
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Yes it helps. Thank You.
Another Q:
When I create an object, string for example, with the syntax:
string s ;
s now is on the heap or on the stack? is s a pointer or is it a synonym of the address of the first block of memory where the object string is defined (kind of a reference)? do I have to delete s after usage? I'm confused
Thank you for all your previous answers
-----------------------
But what did I do?
|
|
|
|
|
If the definition is inside a function, the varible is on the stack. This is called an "automatic" variable which means it's destroyed when the function exits. You delete only variables you have allocated with new
|
|
|
|
|
stringstream was made for just this job:
ostringstream strm;
string s;
strm << "Yes" << 98 << ends;
s = strm.str();
--Mike--
THERE IS NO THERE IS NO BUT THERE IS
MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"Which comes first, the bug or the stress?" -- Chris Maunder
|
|
|
|
|
I create a SDI project.At Step6 I change CView to CFormView.After then I add a CTreeCtrl in my frame for display some data ,and I add some dialog .Now I have a question: when I click menu create the dialog and then click OK return to the Frame,I want to refresh the data in CTreeCtrl,but I don't know how ?
Help me !
|
|
|
|
|
One solution is Invalidate().
Kuphryn
|
|
|
|
|
Hello,
a have a big problem ... I tried to paint a dc with BitBlt (win32 api NOT MFC) and it did not work, my code is :
HDC a,b;
a = GetDC(GetDesktopWindow());
b = CreateCompatibleDC(NULL);
BOOL ahr;
ahr = BitBlt(b,0,0,100,100,a,0,0,SRCCOPY);
ahr = BitBlt(hdc,0,0,400,400,b,0,0,SRCCOPY);
the problem is that all functions return OK values and the screen is empty
if I change :
HDC a,b;
a = GetDC(GetDesktopWindow());
b = CreateCompatibleDC(NULL);
BOOL ahr;
ahr = BitBlt(hdc,0,0,100,100,a,0,0,SRCCOPY);
ahr = BitBlt(hdc,0,0,400,400,hdc,0,0,SRCCOPY);
is OK, so I jump to one conclusion that only "hdc" can be painted ....
all is done in the WM_PAINT message
So my question is how can I create a buffer in memory and paint there and in the end paint my app with it !
thank you !
|
|
|
|
|
u need to find a sample in MSDN (many there) and test it to get right idea.
includeh10
|
|
|
|
|
remember, a dc is not a surface, but the means of accessing one.
If you create a memory dc, it is created with a default 1x1
monochrome surface. (If I recall) What you need to do is create
a bitmap (the surface) and select it into the memory dc. Then
you can paint on that surface using the memory dc and finally
blit from the bitmap (using the memory dc) to the display surface
(using the window dc)
|
|
|
|
|
thanks, you were right, it worked !!!
|
|
|
|
|
First of all, it's best to use BeginPaint and EndPaint when painting from the WM_PAINT message:
PAINTSTRUCT ps;
BeginPaint(hwnd,&ps);
//you can use ps.hdc now for drawing
EndPaint(hwnd,&ps);
Otherwise use GetDC() when painting.
The HDC object you have using the above methods can be used for drawing. A HDC object is 'connected' to a certain surface like a bitmap. The 'b' HDC object you use in your code points to nothing so to say, so you need to create a HBITMAP object if you want the code to work:
HBITMAP bmp=CreateCompatibleBitmap(hdc,width,height);
Then use SelectObject(b,bmp); to let 'b' point to the new bitmap. After that you can draw to it/copy to it etc.
Also, I advice you use b=CreateCompatibleDC(hdc); instead of NULL as argument.
|
|
|
|