|
got the same version.
I was able to add dialog classes but from some reason I can't do it anymore on this project (other projects are good).
The "bug" is that I see no error message and the new class is not created...
Shay
|
|
|
|
|
Problems of this type usually signal that one or more of the temporary files that Visual Studio creates has been corrupted.
Exit Visual Studio. Look in the folder containing your project file project.vcproj . Delete any files named project.ncb or project.aps . This is safe to do, since Visual Studio will re-create them as needed.
Software Zen: delete this; // <a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" rel="nofollow">Fold With Us!</a>[<a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" target="_blank" rel="nofollow" title="New Window">^</a>]
|
|
|
|
|
I already did the work manually but thanks a lot for the info.
This had happen more than once so next time I will try this trick.
shay
|
|
|
|
|
OK, I have been developing an interface for editing records in our database.
I want to set it up as a control that I can use in other applications I
build. I am using databinding to tie the fields to my controls, such as
labels and textboxes.
I can create a solution for a stand alone application that runs like I want,
but whenever I create a solution for a control, then none of my data shows
up. I have tried making C++ controls (the language I am familiar with) and
VB and even C#. I get the same result: The interface compiles and displays
as designed, but no data.
When I add the control to the toolbox, I get the control plus a dataset and
adapter, but no databinding control.
|
|
|
|
|
I'm new to C++ so forgive my confusion.
Could someone please give me an overview how to use a DLL in VC++.
I got a DLL for a TreeView control with checkboxes from this site (QuickFilter.dll) for filtering some data but i don't know how to get the methods of the control. I can't even create the control.
Please help me.
|
|
|
|
|
In Win32 API...
Are there any OS funcs for printing out the addresses of each function called in turn
right up until now (where my app died)
?
Thanks in advance
...Steve
|
|
|
|
|
or even just the os function to call to terminate your app and show the usual
error dialog that'll get you to a stack trace, etc...
When I call ExitProcess(), it just dies silently (which is what I USUALLY want)
|
|
|
|
|
Take a look at this excellent tool[^].
The two most common elements in the universe are Hydrogen and stupidity. - Harlan Ellison
Awasu 2.2 [^]: A free RSS/Atom feed reader with support for Code Project.
|
|
|
|
|
Cooooooool. Thanks - I thought the answer would be around here somewhere.
Just didn't know where
Thanks mucho!
...Steve
|
|
|
|
|
This is to document a solution with CWnd::MoveWindow and CWnd::Create when you have to position your window at a point larger than 32768 in the parent view.
A little background first:
I was trying to position my CmyView objects in a CScrollView object and everything worked as expected up until the point that the vertical location of the new CmyView object was going to be larger than 32768. At this point all the rest of the CmyView objects were being placed on top of themselves. The first 1800 or so CmyViews were placed in the CSrollview correctly but the last 1800 were just drawing on top of each other.
After at least 3 days of trying to figure out what I was doing wrong I came to the conclusion that the MS code is wrong. I can trace the calls through ::CreateEx, ::MoveWindow but I not no nothing about debugging assembled code so that is as far as I could trace it. If you tell the window to move to a vertical position of say 40,000, this is passed all the way through what I can follow in the code through CWnd::MoveWindow. But if you get the position of the window as the next call (and adjust it for screen coordinates) you find that the actual moveWindow call didn't place the window correctly.
At first I thought it was because all the calls use int as the "lowest" level type, but even an int can be larger than 32768.
Workaround:
I had to create a "Holder view" and place that in the CSrollView prior to placing all the CmyView objects into the CHolderView. BUT (this is the important part) the CWnd::Create call to create the Holder (which is a CWnd object) has to be large enough to hold all the CmyView object INITIALLY! If you try to resize it with MoveWindow it also fails to resize correctly.
Workaround:
I had to create a "Holder view" and place that in the CSrollView prior to placing all the CmyView objects into the CHolderView. BUT (this is the important part) the CWnd::Create call to create the Holder (which is a CWnd object) has to be large enough to hold all the CmyView object INITIALLY! If you try to resize it with MoveWindow it also fails to resize correctly.
Chris
|
|
|
|
|
|
Wow, you must have a massive screen to be able to display that many windows and still be able to read them.
I think you should rethink how you are displaying your data to your user. there is absolutely no need to keep that many windows around. One solution would be to create only as many 'CmyView's as you can display in the parent view at one time, then simply swap the data in and out depending on the position of the scroll bar. Even with the 16 bit limit of the WM_VSCROLL message that would give you a limit of 32767 views, if you used Get/SetScrollInfo() instead of WM_VSCROLL you could have a limit of 2^31 views without the problems you are encountering with more than a mere 1800 views.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
Friends,
I am having a strange problem with VC 7.0 while assigning a variable with an edit ctrl on the dialog box. Here is the description:
I dropped an edit control on the dialog box and then right click on that edit control in order to add a variable of type int . I also give min and max values to the variable. The problem is that, the variable is added in the header file of dialog, but there is no entry of this variable in DoDataExchange .
This is something different from VC++ 6.0. Can any onw tell me what is the problem ?
|
|
|
|
|
Hi,
I want to open a .doc file using SHellExecuteEx. How do I do it if I want the file to be opened by an WINWORD instance that is already running, and how do I make it open with a new instance or WINWORD?
thanks!
|
|
|
|
|
Here, try this code with the following comments:
GetFileName returns a path and name to the document to be opened.
FindAdobeAcrobat and FindWinWord return the paths to those applications.
see the documentation on _spawnlp for more info.
void COpenDoc::DoOpenDoc(bool bIsReadOnly)
{
CDTApp* pApp = (CDTApp*)AfxGetApp();
char *args[4];
CString strAppPath;
CString requestName = GetFileName(bIsReadOnly); // get the correct doc, and copies it as necessary.
requestName = requestName.MakeLower();
if(requestName.Find(".pdf",0)!=-1)
strAppPath = FindAdobeAcrobat();
else
strAppPath = FindWinWord();
args[0] = strAppPath.GetBuffer(255);
args[1] = requestName.GetBuffer(255);
args[2] = requestName.GetBuffer(255);
requestName = '\"' + requestName + '\"';
if(!strAppPath.IsEmpty() && !requestName.IsEmpty())
{
int j = _spawnlp(_P_NOWAIT, strAppPath,_T(requestName),_T(requestName),NULL);
j = errno; // here we get the error is something fails.
switch(j){
case ENOMEM: AfxMessageBox(AFX_IDP_FAILED_MEMORY_ALLOC); // NOT ENOUGH MEMORY
break;
default : {
if(j!=0)
{
CString strErr;
strErr.Format("Secondary application path = %s\nRequest Filename = %s",strAppPath,requestName);
pApp->LogGeneralError(strErr);
}
break;
}
}
}
this->OnCancel(); // close out diaolg
}
Chris
|
|
|
|
|
I dont see ShellExecute/Ex used anywhere in your code snippet, do you? I am looking for an example that uses ShellExecuteEx. Do you know about it?
thanks!
|
|
|
|
|
A small example from MSDN...
#include <shlobj.h>
#include <shlwapi.h>
main()
{
LPMALLOC pMalloc;
LPITEMIDLIST pidlWinFiles = NULL;
LPITEMIDLIST pidlItems = NULL;
IShellFolder *psfWinFiles = NULL;
IShellFolder *psfDeskTop = NULL;
LPENUMIDLIST ppenum = NULL;
STRRET strDispName;
TCHAR pszParseName[MAX_PATH];
ULONG celtFetched;
SHELLEXECUTEINFO ShExecInfo;
HRESULT hr;
BOOL fBitmap = FALSE;
hr = SHGetMalloc(&pMalloc);
hr = SHGetFolderLocation(NULL, CSIDL_WINDOWS, NULL, NULL, &pidlWinFiles);
hr = SHGetDesktopFolder(&psfDeskTop);
hr = psfDeskTop->BindToObject(pidlWinFiles, NULL, IID_IShellFolder, (LPVOID *) &psfWinFiles);
hr = psfDeskTop->Release();
hr = psfWinFiles->EnumObjects(NULL,SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &ppenum);
while( hr = ppenum->Next(1,&pidlItems, &celtFetched) == S_OK && (celtFetched) == 1)
{
psfWinFiles->GetDisplayNameOf(pidlItems, SHGDN_FORPARSING, &strDispName);
StrRetToBuf(&strDispName, pidlItems, pszParseName, MAX_PATH);
pMalloc->Free(pidlItems);
if(StrCmpI(PathFindExtension(pszParseName), TEXT( ".bmp")) == 0)
{
fBitmap = TRUE;
break;
}
}
ppenum->Release();
if(fBitmap)
{
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = NULL;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = pszParseName;
ShExecInfo.lpParameters = NULL;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_MAXIMIZE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
}
pMalloc->Free(pidlWinFiles);
pMalloc->Release();
psfWinFiles->Release();
return 0;
}
Jesus Loves You and Me <marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" style="background-color:'#44ccff'">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
-- modified at 23:34 Tuesday 27th December, 2005
|
|
|
|
|
Maybe one of these switches would help:
How to use startup command line switches to start Word 2003, Word 2002, and Word 2000
Bernie (Boom Boom) Geoffrion worked Atlanta Flames games in the 1970s with the splendid Jiggs McDonald. One night, Geoffrion said, "Jiggs, there are only three things to hockey: shooting and skating." McDonald said, "Right, Boomer. And what's the third?" The exasperated Geoffrion replied," Jiggs, that's the three. Shooting. And. Skating."
|
|
|
|
|
Hi everybody, I'm a beginner and I'm writing somthing like this
double *Interesse ,*Capitale, *TassoInteresse, *Intervallo, *Totale;
*Interesse = *(Capitale) * (*TassoInteresse) * (*Intervallo) /36500;
*Totale = *Capitale + *Interesse;
usually this work good but with some value I have rounding problem
like this:
*Capitale = 111111;
*TassoInteresse = 2.5;
*Intervallo = 365;
before converting to string;
*Interesse = 2777.7750000000001
*Totale = 113888.77499999999
after conversion:
2777.78
113.888.77
How can I avoid this?
Thanks in advance.
|
|
|
|
|
This is the normal floating point behaviour in all/most computer languages.
There are numerous ways to display floating point number rounded off to a fixed value, just google for them. ( for example : http://support.microsoft.com/default.aspx?scid=kb;en-us;196652 )
but, if you need to use those values, don't rely on the text display, always keep a "real" value, i.e. if your calculation result in 2777.7750000000001, don't use the rounded value, because you will loose precision in the long run.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
I don't understand what you are asking.
You have a pointer to a double and set its value and that works well, but then you are changing the value when you do the conversion and don't like the result?
I'd use another variable to hold the result of the conversion then you don't change the value of the original double assignment.
If you want to format the string result of the coversion then that is a different question.
I'd suggest not using pointers to start with until you understand what is going on unless the exercise you are doing requires you to use pointers. I'd also suggest a text like C++ from the ground up to learn the basics.
Chris
|
|
|
|
|
Try with this:
char sInteresse[30], sTotale[30];
sprintf(sInteresse, "%14.14f", Interesse);
sprintf(sTotale, "%14.14f", Totale);
|
|
|
|
|
I use _fcvt() to convert double to string .
i'm not rounding double values.
double values are in previous topic
when converted the result is
111111 + 2777.78 = 113888.77
Thanks.
|
|
|
|
|
Hi all,
Please guide me.i am working in vc++ 6.0.Do i need to shift to .net?(i don't have any idea of .net).What are the areas in which i can make my career using vc++ platform.Is my fear about insecurity(if i don't shift to .net) well founded?
Regards,
Ankush
Ankush Mehta
|
|
|
|
|
using Visual Studio .NET (2002, 2003, 2005) don't make you a ".NET programmer", because you can do whatever you were doing with VC++6 with it... if your project uses MFC, then migrate to VS.NET will use the newsion of the MFC library, not the framework .NET.
however, you have to take note that now, Visual Studio 6 support has been abbandonned by microsoft...
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VisualCalc 3.0]
|
|
|
|