|
What kind of MFC App?
1. SDI
2. MDI
3. Dialog Based
For a dialog based application, you can simply drag and drop a combo box on the dialog, attach a member variable to it and perform operations like adding file names.
To add the files in the combo box you can get the file names using FindFirstFile/FindNextFile API's.
What have you done till now? You will have to do a little more work if it's an SDI/MDI application.
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|
|
Thanks for your reply. Sorry i forgot to mention that it's Dialog based. I started building it and I already have the combo box on the GUI and 2 buttons. The reason i dont want to just list them inside the combo box is because i might be adding and deleting files from the directory. So when the program runs I would like the combo box to populate the current files that are in the directory. I know i need to use the CFileFind fucntion to scan the specified directory. But i do not know how to implement it in my program. I try following an example i seen online but im new at MFC progamming in C++.
Thanks
|
|
|
|
|
begin81 wrote: But i do not know how to implement it in my program. Implement what? How to use the CFileFind class, or how to add text to a combobox? Two very different things.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
So what if you want to add and delete files on the disk for the directory contents being displayed in the combo box. You can always have a refresh button along side it. Once the user clicks on the "Refresh" button, remove the contents of the combo box and repopulate it.
You can find a sample for CFindFile here[^]
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|
|
From your description it would probably be easier to use the CFileDialog [^] class. However if you insist on doing it manually you can use the DlgDirListComboBox [^].
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
Thanks for your reply. Sorry i forgot to mention that it's Dialog based. I started building it and I already have the combo box on the GUI and 2 buttons. The reason i dont want to just list them inside the combo box is because i might be adding and deleting files from the directory. So when the program runs I would like the combo box to populate the current files that are in the directory. I know i need to use the CFileFind fucntion to scan the specified directory. But i do not know how to implement it in my program. I try following an example i seen online but im new at MFC progamming in C++.
Thanks
|
|
|
|
|
If you actually followed the two links that I provided for you you will be amazed to discover that both of them would do exactly what you need. However, if you would rather reinvent the wheel, feel free.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
CfindFile. I already got the Combo box on the Gui Dialog. I dont know were to place the code inorder to search and pre populate the combo box like an enumerator would.
|
|
|
|
|
is there a example i can follow that shows step by stop of this already being implemented. Along with the Code a short visual description?
|
|
|
|
|
begin81 wrote: is there a example i can follow that shows step by stop
No idea; try reading the documentation and/or Googling for examples.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
Hi,
would anyknow how to insert line breaks in a Crich edit control I don't know if it matters that its rich edit as opposed to edit
I only have vertical scrolling (up or down) ES_AUTOVSCROLL as the dialog style
and in the streamin call basck function I insert carriage return line feed at the end of the line "/r/n" and display the text following in a new line
thanks
|
|
|
|
|
Do you also have ES_MULTILINE added?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
|
Yourwelcome.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
hello
I have installed boost 1.47.0 library on my system and I have a strange problem. If I try to serialize more then 25 objects, the serialization (save()) apparently works but the deserialization (load()) does not work anymore and it gives me the following error:
Unhandled exception at 0x7c812afb in Boost_tests.exe: Microsoft C++ exception: boost::archive::archive_exception at memory location 0x0012e5ec..
this error is raised when the last object (say the 26th object, if the number of objects is higher then 25) is being deserialized.
here is the code:
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
#include <boost/serialization/string.hpp>
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
#define COUNT 26
class person;
vector<person> v;
class person
{
public:
string _name;
int _age;
person (string name="Liviu", int age=40):_name(name),_age(age){};
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & _name;
ar & _age;
}
};
void save()
{
ofstream file("archiv.cst");
boost::archive::binary_oarchive oa(file);
for (int i=1; i<=COUNT; i++)
{
oa<<person("John",i);
}
file.close();
};
void load()
{
ifstream file("archiv.cst");
boost::archive::binary_iarchive ia(file);
for (int i=1; i<=COUNT; i++)
{
person p;
ia>>p;
v.push_back(p);
}
file.close();
};
int main()
{
int i;
cin>>i;
while (i!=2)
{
if (i==0) save();
if (i==1) load();
cin>>i;
}
}
Can you help me please? Is something wrong with the library?
|
|
|
|
|
Put your code inside a try{}catch{} block, and check which exception is being thrown.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
the exception cannot be caught with a try - catch block
i already told you what the exception is
|
|
|
|
|
How else can you catch it? I would suggest that you try the boost website to see what you need to do.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
boost site sucks
they have no forum
|
|
|
|
|
Did you look here[^]?
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
|
dliviu wrote: for (int i=1; i<=COUNT; i++)
{
person p;
ia>>p;
v.push_back(p);
// cout << p._name<<" " <<p._age<<endl;
}
When you do this... you're loading a stack variable into a dynamic heap object. The stack variable falls out of scope at the end of the execution of each for loop iteration. This isn't necessarily the problem causing the crash you're seeing, but it's definitely a problem.
Correction: vector::push_back() does make a copy and not just keep the pointer.
modified 2-May-12 11:32am.
|
|
|
|
|
I don't see any problem here. p is an object which when it is inserted in v it is copied.
Anyway, this is not the problem. Boost library site sucks, and i have no solution to my strange problem.
|
|
|
|
|
I had to look at the implementation of vector.. you're correct, it is copied. As far as the boost site sucking, well, that's something you have to live with when using third party libraries. You can always make your own serialization class and you won't have support issues (although it'll take you some time to do it).
|
|
|
|
|
Hi,Why GetClipBoardOwner always returns 0 ,
When using GetClipBoardOwner with any other MS office for example the result will be the real Clipboard Owner , but when using it with acrobat reader i don't get any result .
Please can some one explains me this ?
many thanks
|
|
|
|