|
Dear Guys,
Can someone show me how to pass values from the code written in Document class to the View class. Actually I've written the code for a whole project inside the view class, and now I have to change it. I've done it in MDI and using static splitters. It displays different images or text in each pane. But because I've written it in View class all other panes other than the one associated with the main class never gets updated after I minimise the window. And please also show me how I can implement the percentage indication font inside the progress bar. Please help.
Neel
|
|
|
|
|
2 ways:
1. call doc function from view (better in ur case)
MyDoc*pd=(MyDoc*)GetDocument();
pd->GetData(int&i0,CString&cs0,...,anything&any);
//of course, GetData() is function of MyDoc
2. call view function from doc
POSITION pos=GetFirstViewPosition();
//search the function for its use.
//for multiple views, u have to id each of them;
includeh10
|
|
|
|
|
we decide to write a program that play wav file when a person call to our modem.
problem in this way is that after connection, we can't playing wave.
we used TAPI,WaveForm functions in VC++ but we couldn't.
thannx for your guide.
|
|
|
|
|
Hi
Like to find out if there is a limit to the amount of dialog boxes ,controls items and classes i can put inside a SDI project ?? Because i keep getting the "out of memory" msg when i try to use the class wizards !!
PLease advice !! Thank you
bk
|
|
|
|
|
I;'ve never seen this, and believe me the project I'm working on at work is pretty big (about 5500 resources and 50 projects).
Mind you, I don't use the ClassWizard much...I find it easier to write the handlers myself - and you learn more that way.
FYI Classwizard doesn't exist in VC.NET (VC7) so if you're relying on it it will take you longer to adapt when you make the change from VC6 to VC.NET.
Anna
www.annasplace.me.uk
"Be yourself - not what others think you should be" - Marcia Graesch
Trouble with resource IDs? Try the Resource ID Organiser Add-In for Visual C++
|
|
|
|
|
Hi Anna,
Thanx a lot !! Btw when i delete away some of the bitmap resources in my project this prob disappear ! So it seems to me there is a limit... (I noe it sounds absurb as i think vc can cater for big projs!)
I am pretty new in VC and in currently in a rush to complete a proj. So i am not really familiar with all the codings and hence more than often had to rely on ClassWizard. I am not sure of how to write those codes to associate a class with a dialog box and some of the codes to add a variable to a control. Perhaps if u are free can give me a advise or two ! I really appreciate it very much. Thanx you !!
bk
|
|
|
|
|
If you're new to it all the best thing to do in all honesty is to buy one of the many books on getting started with MFC.
As I followed a different path so I can't make any suggestions, but if you ask nicely in the Lounge I'm sure you'll get some.
And of course the other to do is make use of the samples that come on the Visual C++ CD, and of course MSDN. It's all pretty daunting, but once you get the hang of it you'll find it easy enough.
Anna
www.annasplace.me.uk
"Be yourself - not what others think you should be" - Marcia Graesch
Trouble with resource IDs? Try the Resource ID Organiser Add-In for Visual C++
|
|
|
|
|
icic ... i got one .... but i must say they are a tough read !
anyway really thanx a lot !! Have a good day !
bk
|
|
|
|
|
|
After getting database and show it in the FlexGridControl, I don't know how to print it to a paper by a printer.
Please help me.
Thank you.
****Hung****
|
|
|
|
|
check out..
http://www.codeproject.com/printing/lineprint.asp?print=true
or also see...
void
printClass::printString(CDC *dc, char *str, int x, int y)
{
CPrintInfo Info;
int w = dc->GetDeviceCaps(HORZRES);
int h = dc->GetDeviceCaps(VERTRES);
Info.m_rectDraw.SetRect(x,y, w, h);
CRect r = Info.m_rectDraw;
// Calculate the size of the rect but do not print
(void)dc->DrawText(str, strlen(str), r,
DT_CALCRECT|DT_WORDBREAK|DT_NOCLIP|DT_EXPANDTABS);
//print string
dc->DrawText(str, strlen(str), r,
DT_WORDBREAK|DT_NOCLIP|DT_EXPANDTABS);
}
void
printClass::printTestString()
{
CPrintDialog printDlg(FALSE);
CDC dc;
char *strTitle = "Title";
// ask the user to select a printer
if (printDlg.DoModal() == IDCANCEL) return;
dc.Attach(printDlg.GetPrinterDC());
dc.m_bPrinting = TRUE;
dc.SetMapMode(MM_TEXT);
DOCINFO di;
memset(&di, 0, sizeof (DOCINFO));
di.cbSize = sizeof (DOCINFO);
// application title appears in the spooler view
di.lpszDocName = strTitle;
// Begin a new print job
BOOL bPrintingOK = dc.StartDoc( &di );
dc.StartPage();
printString(&dc, "This is a test string", 0,0);
// end page
bPrintingOK = (dc.EndPage() > 0);
if (bPrintingOK) dc.EndDoc();
else dc.AbortDoc();
// detach the printer DC
dc.Detach();
}
cheers
Himanshu
|
|
|
|
|
I'm reading Feng Yuan's, "Windows Graphics Programming", and while it is an incredible investigative journey, I am really confused about one particular feature. In his technical description of the the internal data structures of the Windows 2000 graphics engine and GDI APIs, he lists numerous undocumented structures which the operating system maintains in kernel address space. This is fascinating stuff, but, even a nitwit like me notices pretty quickly that most of these structs are populated with void pointers to other undocumented structs. I can't imagine why Microsoft would use so many void pointers. The only possibility that seems reasonable is that the void pointer conceals the actual data structure from nitwits like me in user address space.
Anybody have any hard intel on this stuff?
|
|
|
|
|
no but i want to know so if u discover anything please post it back here
"No matter where you go, there your are..." - Buckaoo Banzi
-pete
|
|
|
|
|
void pointers are generic and can point to anything. It allows you to write generic functions and classes. so you could pass a string pointer or a integere pointer or a struct pointer and they'll all be accepted by the coid pointer variable.
Nish
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
"undocumented structure" means the structure can't be defined, the reason that it can't be defined is those void pointers, they are not cool at all, they are something can not be defined.
i.e. for dialog template structure ("undocumented structure"), u see these stories:
WORD id;
void* pv;
what does pv mean?
if id=0; pv is null;
if id=1; pv to a DWORD;
if id=2; pv to a char string;
(i can't remember exactly values, here is just idea)
these kind of "structures" can't be defined, so called "undocumented structure" - do body can document (define) it.
hope u understand that void* is not cool, it is "no words to say".
includeh10
|
|
|
|
|
You know, I kind of posted this inquiry half in jest, becuase it was my understanding that void pointers are NOT cool (and are, in fact, unsafe). I mean without typecasting, the potential exists for the wrong type of pointer residing in the structure.
And, apparently, I've confused you guys somewhat, because the author represents much of his technical information on "undocumented internals" as being taken from Microsoft's documentation for the Device Driver SDK. The Feng Yuan also invents soem ingenious methods for obtaining information from OS kernel components (which is theoretically, not accessible from a user application). He does this with Windows 2000 (my machine has Windows 98, and some of the function calls he employs are not available on Windows versions earlier than 2000 or XP).
Anyway, it's a long story. And, I'm a novice to Windows systematics. The main reason I posted is that it seemed like a marginal technique to employ for critical kernel DLLs and the systems calls that they provide.
If I find out anything interesting, I'll get back.
|
|
|
|
|
I'm currently using a CMap because i need to associate a key with a specific value.
But i also need to retreive the keys in a specific order.
Is it possible to sort the keys in a map?
Is there any other way to get the map functionality and be able to sort the keys?
|
|
|
|
|
Stefan Dahlin wrote:
I'm currently using a CMap because i need to associate a key with a specific value.
But i also need to retreive the keys in a specific order.
Is it possible to sort the keys in a map?
From memory CMap uses a hash table, in which case the answer is no.
Stefan Dahlin wrote:
Is there any other way to get the map functionality and be able to sort the keys?
Yes move to STL. Look at Map and Multimap. Also this CP article may be of interest: http://www.codeproject.com/vcpp/stl/bimap.asp[^]
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
Why is it that when the following code is executed, the first dialog comes up and waits 'til the user clicks OK, but as soon as the second dialog comes up, the whole app abruptly shuts down without waiting for any interaction from the user?
BOOL CNuFunkApp::InitInstance()
{
CNuFunkDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
CNuFunkDlg dlg2;
m_pMainWnd = &dlg2;
int nResponse2 = dlg2.DoModal();
return FALSE;
}
|
|
|
|
|
Because you are creating a modal dialog box. What you need is a modeless dialog box. See the C++ FAQ, I think it was mentioned in there.
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
No, I'm pretty sure I want "Modal" behavior. What I would expect in this simplified example, is that the first dialog would come up and wait in a modal state until the user dismisses it, after which, the second dialog would come up and wait in a modal state until the user dismisses it, at which time the app would then shut down.
|
|
|
|
|
I missunderstood your point, hm...
Well, I would show these two dialogs in OnInitDialog() if I were you... but that's perhaps a bad code design, I don't know. If you do it in OnInitDialog() it WILL work.
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
Your application actually exits upon return from:
int nResponse = dlg.DoModal();
This is because of the previous line:
m_pMainWnd = &dlg;
Searching in the MSDN documentation reveals:
The Microsoft Foundation Class Library will automatically terminate your thread when the window referred to by m_pMainWnd is closed. If this thread is the primary thread for an application, the application will also be terminated. If this data member is NULL, the main window for the application's CWinApp object will be used to determine when to terminate the thread. m_pMainWnd is a public variable of type CWnd*.
Typically, you set this member variable when you override InitInstance. In a worker thread, the value of this data member is inherited from its parent thread.
-Sean
----
Shag a Lizard
|
|
|
|
|
Thank you very much for solving my mystery.
jer
|
|
|
|
|
I had the same problem once. After a lot of looking around I found out that the WM_QUIT message from the first dialog box gets left in the message queue. When I emptied the message queue between the calls, (or at least the WM_QUIT message) things worked fine.
Write back and let us know what you find in your case.
|
|
|
|