|
Thanks Hockey! It worked!!!
|
|
|
|
|
In the class I'm writing I'm using the string type from the STL. The problem I'm encoutering is that when I compile I'm getting warning 4530 in a bunch of the STL string files. The warning is "C++ exception handler used, but unwind semantics are not enabled. Specify -GX" I see that I can just add the -GX compiler option, but I want to know why I'm getting this warning. I've used string before and never had this problem. In my header I have
#include <string>
using namespace std; Am I doing something wrong here?
- Aaron
|
|
|
|
|
MSDN states you need to enable exception handling for any of the standard C++ library.
http://support.microsoft.com/default.aspx?scid=kb;en-us;q154419[^]
Why you didn't get this warning before??? Maybe you weren't using MS STL Or perhaps your proejct settings already included this compiler switch?
Check out #pragma warning to surpress this warning
How do I print my voice mail?
|
|
|
|
|
Thanks for the info. Not sure why I never got the warnings before but I guess I'll enable the exception handling and clear those pesky warnings.
I was going to use #pragma warning but I'd actually have to put it in each file that was causing the warning...probably not a good idea.
- Aaron
|
|
|
|
|
Cheers
How do I print my voice mail?
|
|
|
|
|
Some project types, e.g. MFC projects, have /GX (/EHsc) enabled by the AppWizard. Others don't.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
That would be why then, the project wasn't an MFC one. Thanks for the info.
- Aaron
|
|
|
|
|
Hi
As far as I know there are two types of dialogs. Modeless and Modal.
Now according what it says here : [url]http://www.devarticles.com/c/a/Cplusplus/Using-MFC-in-Cplus-Dialog-Boxes/4/[/url] and also on Microsft's MSDN site that to create Modeless dialog I must call Create() function and DestroyWindow() function. Whereas for the modal dialog I only call DoModal.
Now I am confused as my dialog does not call any of those functions and I am still able to display it.
The dialog initialization is:
BOOL CProgressDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ShowWindow(SW_HIDE); // Show or hide a control, etc.
return TRUE;
}
and to display I call ShowWindow(SW_SHOW);
and Close() function to close dialog:
void CProgressDlg::Close()
{
EndDialog(IDOK);
}
It works.! So what kind of dialog is this? I guess this is a modeless dialog as it doesnt need to wait untill the user presses OK button. Is it correct what I am doing here or its wrong? Please let me know.
My second question: The dialog I created is used to display a progress bar while some text files are processed using a separate worker thread (thread used purely for files processing not for the dialog). The problem I have is when I start processing files the dialog with the progress bar appears but its behind the main window. How can I force it to display over the main window as the modal dialogs do? I guess WS_OVERLAPPED will do but where to use it?
|
|
|
|
|
How are you creating your dialog object?
Modal's are (usually) created on the stack (or heap):
CMyDialog myDlg;
myDlg.DoModal()
When it goes out of scope, everything is cleaned up automagically...(if created on the stack)
robert_s wrote:
Now I am confused as my dialog does not call any of those functions and I am still able to display it.
Now I am confused...how are you creating a dialog if your no calling Create or DoModal???
robert_s wrote:
My second question: The dialog I created is used to display a progress bar while some text files are processed using a separate worker thread (thread used purely for files processing not for the dialog). The problem I have is when I start processing files the dialog with the progress bar appears but its behind the main window. How can I force it to display over the main window as the modal dialogs do? I guess WS_OVERLAPPED will do but where to use it?
SetForegroundWindow() ???
How do I print my voice mail?
|
|
|
|
|
Hey,
I am using Visual C++, and I created a Combo Box and added the options into it. Now, when someone selects one of the options, I want a text describing the option to appear in an edit box. I have looked around and only found a few things, but nothing really helped.
Thanks for the help
|
|
|
|
|
The combox by default displays the text in the list control in the edit box as each item is selected.
I'm not sure, but you could maybe try capturing ON_CBN_EDITUPDATE or ON_CBN_SELCHANGE and then forcing the edit to change it's value.
This approach won't work if the drop down list and edit field are dual synchronized. What I mean by this is if you set the edit content it make force a new item to be selected inside the list box as well and visa-versa.
If this is the case you will have to subclass the CComboBox control and override this functionality.
Cheers
How do I print my voice mail?
|
|
|
|
|
I tried doing that, didn't work, here is my code.
<br />
void CDEPDlg::OnSelchangeCombo1() <br />
{<br />
UpdateData(true);<br />
<br />
if(m_type1=="Run #1")<br />
{<br />
m_purp1="Test";<br />
}<br />
<br />
UpdateData(false);<br />
<br />
}<br />
m_type1 is the combo box, and Run #1 is the option in the combo box.
m_purp1 is the edit box that i want it to display the description.
I know it is wrong, so criticize all you want, just need help with it.
Thanks
|
|
|
|
|
It's been a while since I subclassed comboboxes or dealt with them for that matter
How did you get m_purp1 and m_type1 to map to the 2 controls that make up an CComboBox ?
How do I print my voice mail?
|
|
|
|
|
I went to the class wizard and did it there.
m_type1 is a CString and m_purp1 is a CString also
|
|
|
|
|
If you're wanting to update an Edit Box that isn't the one at the top of the Combo Box (which is what it looks like) try this
void CDEPDlg::OnSelchangeCombo1()
{
CString text;
m_type1.GetWindowText (&text);
if(text == "Run #1")
m_purp1.SetWindowText("Test");
}
- Aaron
|
|
|
|
|
Thanks for the help.
I am getting this error,
C:\DEP\DEPDlg.cpp(182) : error C2664: 'void __thiscall CWnd::GetWindowTextA(class CString &) const' : cannot convert parameter 1 from 'class CString *' to 'class CString &'
A reference that is not to 'const' cannot be bound to a non-lvalue
|
|
|
|
|
I took out the & in the (&text) and it worked, and it works, but i have to select the Run #1 twice for the Test to show up in the edit box.
Thanks
|
|
|
|
|
but i have to select the Run #1 twice for the Test to show up in the edit box
Try chaging your message from CBN_SELCHANGE to CBN_SELENDOK. I think the reason you're having to select it twice is that CBN_SELCHANGE is sent before the selection changes, therefore the text, "Run #1" in your case, isn't actually in the edit portion when the message is processed. CBN_SELENDOK is sent after the selection is made. Just use class wizard to remove the selchange and add a selend
- Aaron
- Aaron
|
|
|
|
|
Thanks for your help.
I tried that and I still have to do it twice to get it to show up. Any more ideas?
|
|
|
|
|
Figured that would work, guess not though. Try this
int cur = m_type1.GetCurSel ();
CString text;
m_type1.GetLBText (cur, text);
if (text == "Run #1")
m_purp1.SetWindowText ("Test");
- Aaron
|
|
|
|
|
|
I need to make a Virtual MIDI Port. ( actually several ) I have worked with MIDI just enough to be dangerous. I can trigger physical ports, but I need a way to create dummy ports to re-direct midi from one application to another.
There isn't a whole lot of information available that I've seen out there, but any direction or insight would be greatly appreciated.
Thanks
|
|
|
|
|
Do you need to code one, or just to use one?
The only one I know of that works with current Windows OS's is MidiYoke.. http://www.midiox.com/ [^]
As far as coding goes... no, don't know how that would be done.
|
|
|
|
|
thanks. i knew about midi yoke, but yes, i want to code my own.
i appreciate the time!
|
|
|
|
|
Hi,
I have a multi-threaded c++ application. I was wondering how I can calculate the memory footprint of my application and CPU % per thread from the program itself.
Please advise.
|
|
|
|