|
Ok thanks guys for that, Now onto trying to outputting multiple characters. I have tried a couple of different ways, but to no avail thus far:
void CParserDlg::OnParse()
{
char key[16]; //Make Array "Key"
strcpy(key, "Text Here"); //Copy "Text Here" into array
UpdateData(TRUE); //
m_strkey.Format("%c", key[0]); //Output "T"
m_strkey.Format("%c", key[1]); //Output "e"
UpdateData(FALSE); //
}
void CParserDlg::OnParse()
{
char key[16]; //Make Array "Key"
strcpy(key, "Text Here"); //Copy "Text Here" into array
UpdateData(TRUE); //
m_strkey.Format("%c", key[0], key[1]); //Output "T" and "e"
UpdateData(FALSE); //
}
I also played with the UpdateData(), but again it will only output the last character I send which in this case is "e". "T" gets lost somewhere along the lines even if I send it by sending FALSE to UpdateData().
|
|
|
|
|
In both cases you are overwriting the 'T' character.
In the first case you are first setting the m_strkey to 'T' then
immediately changing it to 'e'
If you want to add the 'e' instead of changing from 'T' to 'e' use:
m_strkey.Format("%c", key[0]); //Output "T"
m_strkey += key[1];
Or you could just simply use
m_strkey = key[0];
m_strkey += key[1];
In the second case you are using a format string that only accepts one
character then passing two characters as arguments (of course only one is used):
m_strkey.Format("%c", key[0], key[1]); //Output "T" and "e"
Use:
m_strkey.Format("%c%c", key[0], key[1]); //Output "T" and "e"
Steve T
|
|
|
|
|
thank you.
I am learning this little by little. Its the little things that give me the most trouble. Do you know of any tutorials or articles where I can learn about this?
Thanks
|
|
|
|
|
I would lose the calls to UpdateData() . Rare is the case that it is ever useful.
You did not indicate what control on the dialog box is displaying the text so I will assume it is an edit control. In the dialog's class, you need a CEdit variable (e.g., m_edit ). Now your code can look like:
void CParserDlg::OnParse()
{
char key[16];
strcpy(key, "Text Here");
m_strkey = key;
m_edit.SetWindowText(m_strkey);
} or
void CParserDlg::OnParse()
{
m_strkey = "Text Here";
m_edit.SetWindowText(m_strkey);
} or
void CParserDlg::OnParse()
{
m_edit.SetWindowText("Text Here");
}
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Thank you for the reply. I already have a CEdit variable in this case being: "m_strkey for the Edit Box which I am outputting to (you we're correct on that assumption).
I tried using SetWindowText() instead of Format(), but I keep getting an error:
error C2039: 'SetWindowTextA' : is not a member of 'ATL::CStringT<basetype,stringtraits>'
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL<char>
]
Not sure why it says "SetWindowTextA", I only have "SetWindowText".
|
|
|
|
|
Is there a way, in a Visual Studio .NET Setup project, that you can make a custom folder under the Application folder that will include all the files from some source directory? I only see a way of specifiying individual files to add to the folders. I just want this folder to include c:\somefolder\*.* and not worry about adding and removing individual files if it changes.
Thank you
|
|
|
|
|
I'm pretty sure the answer to this is no. You definitely cannot do it through the VS interface.
The problem is the MSI package is basically a database, and all files must have unique keys as well as attributes assigned. The file keys must also be assigned as secondary keys to other keyed tables like the Components table. So it is not a simple process.
InstallShield may still provide a drag and drop capability - the pre MSI versions did.
You can write an external app that populates MSI tables through APIs, but it would definitely be a non-trivial task to create. Much harder than manually adding the files...
You could also write a custom action that simply extracted all files from a given CAB and copy them to a target directory. But you would also have to provide custom actions for how, and when to remove this files in case of an uninstall, since the MSI itself would not have the set of information it needed to be able to handle for this.
Also non-trivial, at least to do it right.
Sorry,
Robert
|
|
|
|
|
i added a few of MFC software on a web-site for free download, is there any idea to increase traffic to this free software web-site?
includeh10
|
|
|
|
|
This probably is not the best forum to post this type of questions. But to give a quick answer, submit your web site to all the search engines out there. Add links to your website on other peoples website.
Good luck. it may take a month before you see any results...unless your willing to pay for quicker action.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
Are there any way to Save/Restore appearance scheme from C++ code ?
|
|
|
|
|
I'm not sure what "appearance scheme" is, but applications generally put configuration-related data in the registry.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
hai,
Everyone who know that how to use the install.inf file to perform the silent installation?? i mean that what are the coding in the .inf file to perform silent installation!
Example: the coding can hide the next button when perform installation!
Thanks for ur!!!!
|
|
|
|
|
What would cause DrawDragRect to draw black square?
It's suppose to disappear if you draw over the same square twice but some how I am getting black square and I don't know what's causing it. I am using pretty much the same code I used for OnMouseMove(which works fine), the only difference is I changed how deltaPt behave.
dc.DrawDragRect(pLink->GetRc(moving[1]-1)-ScrollClip, bdry, pLink->GetRc(moving[1]-1)-ScrollClip, bdry, NULL, NULL);
Would cause no square to be drawn
dc.DrawDragRect(pLink->GetRc(moving[1]-1)-ScrollClip, bdry, pLink->GetRcLast(moving[1]-1)-ScrollClip-deltaPt, bdry, NULL, NULL);
Would cause a delay on clearing up. Show two square when I scroll down.
In both cases I would suspect my code would work. I am out of ideas what else to test for.
Here is my code
BOOL CEditView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt){
CClientDC dc(this);
CPoint deltaPt = CPoint(0,0);
POSITION pos = 0;
CEditDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CObList& LinkList = pDoc->GetLinkList();
CPoint ScrollClip;
int MaxScroll;
ScrollClip = GetScrollPosition();
MaxScroll = GetScrollLimit(SB_VERT);
if(zDelta < 0 && (ScrollClip.y < MaxScroll)) {
deltaPt = CPoint(0, 63);
} else if (zDelta > 0 && ScrollClip.y > 0) {
deltaPt = CPoint(0, -63);
} else {
deltaPt = CPoint(0, 0);
}
CString test;
if(moving[1]){
pos=LinkList.FindIndex(moving[0]-1);
CLink* pLink = (CLink*) LinkList.GetAt(pos);
pLink->OffsetRc(moving[1]-1, deltaPt);
dc.DrawDragRect(pLink->GetRc(moving[1]-1)-ScrollClip, bdry, pLink->GetRcLast(moving[1]-1)-ScrollClip, bdry, NULL, NULL);
pLink->EqualRc(moving[1]-1);
}
return CScrollView::OnMouseWheel(nFlags, zDelta, pt);
}
|
|
|
|
|
Hello,
I am creating a dll in which I simply want to export a class.
When creating the dll I noticed in the .cpp file that is default created by VC and which has the InitInstance inside, the following comment:
// Note!
//
// If this DLL is dynamically linked against the MFC
// DLLs, any functions exported from this DLL which
// call into MFC must have the AFX_MANAGE_STATE macro
// added at the very beginning of the function.
// ......
etc...
Does that mean that in each member function of the class which I want to export I`ll need to add that macro?
Why isn^t it present in the default InitInstance function?
And what`s the use of that InitInstance function anyway? I created the dll and debugged it and put a breakpoint in tthe InitInstance function, but it was never called. The theApp object of the dll was never instantiated either, but none the less I used an exported class from that dll in another app.
Thx for any help you might give.
Friendly regards,
Davy
|
|
|
|
|
GDavy wrote:
Does that mean that in each member function of the class which I want to export I`ll need to add that macro?
The AFX_MANAGE_STATE() macro is needed because MFC will use resource templates from the main/owning application by default. If your exported function needs a resource in the DLL, you need to switch the module state for the correct resource template to be used.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I have written a callback function in a DLL written in VC++ to call back to an application written in VB, everything works fine in debug build, but when i build the executable in VB it crashes when the program tries to call a fuction to the DLL while still in the callback function from the DLL
The vb is as :
Public Sub cbFunction(ByVal nEvent As Long, ByVal sData As String)
the address of the function is passed to the dll as :
NRInitialise(AddressOf cbFunction)
I need to be able to call the dll whilst in the call back function...
Any ideas ???
Cheers
|
|
|
|
|
Hi,
Can anybody help me out here.
In one of my project, i need to send data from array to Excel Sheet.
Or from a List Control to ExcelSheet.
Thank.
neelima
|
|
|
|
|
Are you using Excel Automation?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hello
char array[5] = {'H','E','L','L','O'};<br />
this->textBox1->Text = array;
(This works, even without appending '\0' at the end)
Is there a way to display integers directly, without first convert them to strings.(So far I used the sprintf function)
t.
|
|
|
|
|
doneirik wrote:
Is there a way to display integers directly
not unless the control has a specific method for displaying integers. most only have methods to display strings.
Image Toolkits | Image Processing | Cleek
|
|
|
|
|
I have an MFC extension DLL (uses MFC dynamically) and I use it from my MFC exe (uses MFC dynamically). I have a class that derives from one of the classes defined in the extension DLL.
Unfortunately I keep getting this linker error ;-(
MyClass.obj : error LNK2001: unresolved external symbol "protected: static struct AFX_MSGMAP const CMyClass::messageMap" (?messageMap@CMyClass@@1UAFX_MSGMAP@@B)
Anyone knows what's causing this?
Nish
p.s. I did a fair bit of googling but none of the search results solved the issue ;-(
|
|
|
|
|
|
hi,
i want to make an add-in to visual studio
that will have a menu and each choice of the menu will do something.
like pressing on "Tools" (for example) -> then comes the menu and then pressing one of the commands.
the problem is that i don't know how to do the add-in as menu.
i tried all the wizards and samples but didn't find one.
(its alot diffrent from doing Add-In to visual studio 6)
does anyone can direct me to a source or tell me some hints on this subject?
thanks in advance,
Avi.
|
|
|
|
|
Hi,
I get this runtime error
Unhandled exception at 0x7c59bbf3 in NewMumsEngine.exe: Microsoft C++ exception: std::out_of_range @ 0x016c605c.
when I try to execute this line
sVarData = m_pElement[iPos].sValue.substr(iIndex+1);
where
sVarData is of string type.
m_pElement[iPos] is an object of a structure
sValue is another string variable in the same structure.
Can anyone please explain this error to me and tell me how to remove it.Any suggestions please?
thanks,
Arjun.
|
|
|
|
|
First guess - the error is 'out of range', so is iIndex + 1 greater than the size of sValue, or is iPos greater than or equal to the number of elements ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|