|
Check that the height of the dropdown lists (in the resource editor) of the combo boxes is long enough.
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Yeah, that's ok, I can see all the items I put in the dropdown lists, but I just can't click on them.
My main app is modeless dialog based.
Thanks,
Dave
|
|
|
|
|
|
I remember this!! (But it was fixed in MFC 4.2)
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
The problem still exists when a property page has an embedded property sheet - the focus gets all messed up and locks up the application (I'm using VC6).
Steve
|
|
|
|
|
Hi,
I tried opening a file in a edit box using the following code
CFile ComFile(triccomfilename,CFile::modeRead);
DWORD dwSize = ComFile.GetLength();
Buffer = new TCHAR[dwSize];
ComFile.Read(Buffer, dwSize);
ComFile.Close();
ccedit->SetWindowText(Buffer);
The code works perfectly, but the problem is that I get some extra characters in the edit box, for example if the file contains "HELLO" , then the edit box displays, "HELLO yyyyYYYYYYYYYYYYYYA". I dont know why it happens , can anyone help me out?.
Thanks,
Deepak Samuel
|
|
|
|
|
You're not initialising the buffer to be null, so your string includes any guff that was in that memory until it finds a null. Do this:
Buffer = new TCHAR[dwSize + 1];
::memset(Buffer, 0, dwSize + 1);
I *think* that the value to set comes in the middle, then the size. If this does not work, swap the last two parameters.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Thanks a lot..It worked..
Regards, Deepak Samuel.
|
|
|
|
|
I have kind of a strange problem which I hope someone here can offer some advice on. I have a kind of options dialog which is popped up from within another dialog.
In the 2nd dialog I get a couple of numbers and an option from the user and then return. The problem I ran into was how to get control long enough to do an UpdateData to move the screen data into my variables.
The only thing I could think of was to change the OK button from IDOK to ID_BEXIT and use this code;
void TimeGet::OnBnClickedBexit()
{
UpdateData(TRUE);
CDialog::OnOK();
}
This works ok but it does a strange thing. I have to click the OK button twice in order for the 2nd dialog to close and control return to the first.
Does anyone have any idea why I need to click OK twice? Or perhaps a better way of accomplishing the task.
Thanks!!
Karen
|
|
|
|
|
You don't need to change to ID, you just need to override the method that gets called when you click 'OK'.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Christian,
That was my first thought, but I can't find exactly what to override. There is no reference to IDOK anywhere in the diaog except the one I put threre. Any hints?
Karen
|
|
|
|
|
Are you using VC6 or VC7 ? If the former, hitting CTRL-W definately brings up the wizard and the OnOK is listed ( as a specific message, not as a button with the others, from memory ).
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
I found where IDOK could be overridden and overrode it. Unfortunately, it still takes 2 clicks on the OK button to terminate the dialog.
|
|
|
|
|
Hmph. If you take out the call to UpdateData, is this still the case ( I know you need the call, just trying to figure out what's going on ) Do you have a cancel button ? Does it close the first time it's clicked ?
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Ths is the code I am using to call the 2nd dialog;
TimeGet TimeGetDlg;
TimeGetDlg.DoModal();
if(TimeGetDlg.DoModal() == IDOK ) {
TG_AlarmHH= TimeGetDlg.HH;
TG_AlarmMM= TimeGetDlg.MM;
TG_AlarmAMPM= TimeGetDlg.AMPM;
}
and in the 2nd dialog, this is the overriden OK code;
void TimeGet::OnBnClickedOk()
{
CWnd* pWnd;
pWnd=GetDlgItem(IDC_HH);
pWnd->GetWindowText(HH);
pWnd=GetDlgItem(IDC_MM);
pWnd->GetWindowText(MM);
CDialog::OnOK();
}
What is happening is that when OK is clicked the first time, control returns to the 1st dialog at the if statement. The if fails and the 2nd dialog pops up again. This time when OK is clicked, control again returns to the if statement in the first dialog but this time the if succeeds and everything proceeds normally.
I have to admit that at this point I am totally lost.
Karen
|
|
|
|
|
Oh, I almst forgot, the CANCEL button works fine.
|
|
|
|
|
Read your code again. You're calling DoModal twice. Get rid of
Karen0302 wrote:
TimeGetDlg.DoModal();
and all will be fine.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
I thought that the
TimeGet TimeGetDlg
instantiated the TimeGet class in my 1st dialog. I copied the code from a posting I found here. This is the first time I have tried passing data back and forth between dialogs.
I commented out the statement you indicated and you aqre absolutely right ... if works perfectly now.
Thanks very much for your help!!!!
Karen
|
|
|
|
|
no worries, glad to help.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Christian,
I just finally understood what you meant about calling the dialog twice. Once was my explicit call and the second was the first operand of the if statement. Duh!!!
I feel like an idiot!! I should have caught that, but since it my first try at dialog to dialog data passing I was looking for something exotic.
Thans again, your help is much appreciated!!
Karen
|
|
|
|
|
LOL - no worries. I can't tell you how often I've spent half a day looking for a = instead of == bug, or similar. It just goes that way sometimes.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
I created a dll so i can call from the other program/project.
I want to know how to debug the dll from calling program.
here what i did
1)copy the myDll.h, myDll.dll and myDll.lib and paste them into the project where the program ( let's call it testingDll) will use them
2) from testingDll, go to project->setting->debug->
- choose Additional Dll from Categories
- add "c:\myDll\myDll.dll" on Location Name
3) from testingDll, go to project->setting->link->
- type "myDll.dll" in obj/lib modules
However, the program doesn't stop at where myDll break points are.
How to debug myDll please???
What did i do wrong?
thank you
|
|
|
|
|
Do it the other way around.
Copy the executable to the DLL debug directory. Set the executable to debug to the driving program.
|
|
|
|
|
I have an MDI application (obviously) however I also have multiple doc/views each with it's own icon, string res and so on...
My problem is this...when you have multiple doc/views whenever your app receives an OnNewDocument() MFC causes a little box to display asking which kind of document you wish to create
This sux...because I need more options than just a list box
I can override this functionality?
Thanks a bunch
Cheers
I'm drinking triples, seeing double and acting single
|
|
|
|
|