|
WM_TIMER
This is a very easy thing to use, but is not 100% accurate.
You will need SetTimer and KillTimer
|
|
|
|
|
How can I achieve, that "Enter" works on a certain Button ? I´d like to change this during program. Sometimes Button "A" should work on ENTER, sometimes another one.
|
|
|
|
|
If you have a dialog-based application, you could set the default button with CDialog::SetDefID( UINT nID ) where nID is the ID of the new default button.
Hope this helps
--
Roger
It's supposed to be hard, otherwise anybody could do it!
|
|
|
|
|
Thanks, that works fine !
|
|
|
|
|
I'm writing a small app that has a number of classes in it. I would like to save the data to a single binary file. I understand how to write the data to the file, but when is comes to reading it again I'm lost.
If the data classes are written to the file in random order, (I know, not a good practice) how do I retrieve the data I have written to the file?
Or is it better to have a file for each class?
If you could point me in the right direction your help would be greatly appreciated...
Thanks, mcb36
|
|
|
|
|
You have of course to load your data in the same order you saved it. Otherwise you will get into big troubles.
|
|
|
|
|
So if I save class "A", then class "B", then class "C", that is the order I need to read it back in. That I can do, but how to I know when to move from class "A" to class "B"? is there a way to check if not more instances have been saved of each class? And what if on instances of class "B" have been saved? How do I know what data is saved in the file until I read it?
Thanks, mcb36
|
|
|
|
|
You need to store the number of instances of all classes that are saved in your file. But in general, the way to save your data is much more cleaner than that. You should take a look at serialization articles on the MSDN. A good way of doing that is to let each object save and load itself. So, if the object is made of several objects, it will save and load these specific objects, each of those are responsible for saving and loading themselves.
But in summary, if you need to save several objects without knowing the exact number (stored in an array for example), then you can simply save, before saving them, the number of elements of that type.
|
|
|
|
|
You can do it by using a chunk file. (An old Mac-invention if my mind serves me right).
It works like this:
Every item in a chunk file consists of a header and a (binary) data block.
The header has a fixed length (a struct), containing a label and the length of the following data block.
So when you write it, fill in the fields in the header and write it to the chunk file. Then write the data block to the chunk file.
When you read the chunk file, first read the header. Then you will know:
1.
The identification of the data block. (I.e. the class name)
2.
The data length (of the following data block).
Now you can choose either to read the data block, or discard it and continue reading the next header.
I have been using chunk files a lot in my work because:
1.
Every item is marked so I know in advance what data I can expect.
2.
I can easily skip the kind of data I don't want to read back.
Maybe you can try one?
Kakan
-- modified at 8:53 Wednesday 8th February, 2006
I agree with Cedric Moonen, you should have a look at serialisation. But if you find it less usable for you, the have a look at chunk files.
|
|
|
|
|
Thanks Kakan,
That sounds perfect for what I need to do = )
And thanks Cedric for your help = )
Thanks, mcb36
|
|
|
|
|
|
Please tell me the software used for the deployment of vc++ applications
Jeeva
|
|
|
|
|
there is not one particuliar, and when the project is compiled, it has no sense to precise that it was made using VC++, C#, VB, Java...
did you had a look at some MSI compilers, and InstallShield also ?
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
|
Jeeva Mary Varghese wrote: Please tell me the software used for the deployment of vc++ applications
if you looking for widly use Freeware you can try Inno Setup[^] too
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hello. How can I getthe letters to drivenames.
For example: I have the drivename "PhysicalDrive0" and need to get which letter the drive "PhysicalDrive0" has
Thanks for help, Ahmet.
|
|
|
|
|
See the following WMI classes: Win32_DiskPartition, Win32_LogicalDisk, and Win32_DiskDrive.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
Are these recent functions that have been added "recently" ? They do not appear in my (of course not online) MSDN version (4.74) ?
~RaGE();
|
|
|
|
|
Rage wrote:
Are these recent functions that have been added "recently" ?
That depends on your definition of "recently." They require NT4 SP4 (NT4 came out in mid-1996).
Rage wrote: They do not appear in my (of course not online) MSDN version (4.74) ?
Do you have October 2001?
Win32_LogicalDisk
Win32_DiskPartition
Win32_DiskDrive
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
Are these recent functions that have been added "recently" ? They do not appear in my (of course not online) MSND version (4.74) ?
~RaGE();
|
|
|
|
|
Thanks for your answer. That was, what I needed.
|
|
|
|
|
Compiler and libraries
VC6, MFC
Intro
I have a SDI app that swaps out two views depending on user input. One of these is a CSrollView. The view displays an unknown number of lines and it's very likely that I'll have enough content to have vertical scroll bars. For testing, I purposely drew enough lines to make the content long enough to show a vertical scrollbar.
Observations
When the view is initially displayed, the expected content is drawn (all of the content is text) correctly, and the vertical scrollbar shows up as expected.
When I try to scroll the view, the display becomes corrupted, text partially drawn, text overlapping, etc.
It doesn't matter if I click the thumb controller, a scrollbar arrow, or the scrollbar itself. The display always becomes corrupted as decsribed above.
What I've Done
I've made sure SetScrollSizes is called in OnInitialUpdate.
I also call SetScrollSizes at the end of the drawing function to account for the actual number of lines I'm displaying. The scrollbars update accordingly.
Result
I'm at a complete loss as to what I'm doing wrong (and I just know this is going to be a forehead slapper). Does anyone have any ideas?
[EDIT] It was a forehead slapper. problem solved.
------- sig starts
"I've heard some drivers saying, 'We're going too fast here...'. If you're not here to race, go the hell home - don't come here and grumble about going too fast. Why don't you tie a kerosene rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
-- modified at 10:17 Wednesday 8th February, 2006
|
|
|
|
|
I have drawn graph in OnDraw function,i got the graph..but when i minimized the window and getting back the position..it shows assertion error..What is tht?
How cud i get rid of tht?
|
|
|
|
|
Perhaps you can provide us with the code of the OnDraw function?
Er zit een korstje op mijn aars.
|
|
|
|
|
void CLineView::OnDraw(CDC* pDC)
{
//CLineDoc* pDoc = GetDocument();
//ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
GetClientRect(&rect);
pDC->FillRect((LPCRECT)rect,&CBrush(RGB(0,0,0)));
CPoint PtLine[] = { CPoint( 100, 20), CPoint(100, 420),
CPoint(700, 420) };
pDC->SelectStockObject(WHITE_PEN);
pDC->SetBkColor(RGB(0,0,0));
pDC->SetTextColor(RGB(19,133,255));
pDC->MoveTo(PtLine[0]);
pDC->LineTo(PtLine[1]);
pDC->LineTo(PtLine[2]);
int x1=160,y1=420,x2=100,y2=60;
for(int i = 0;i<9;i++)
{
pDC->MoveTo(x1,y1);
pDC->LineTo(x1,y1+5);
x1=x1+60;
pDC->MoveTo(x2,y2);
pDC->LineTo(x2-5,y2);
y2=y2+40;
}
gpen1.CreatePen(PS_SOLID,2,RGB(255,0,0));
pDC->SelectObject(&gpen1);
for(int j= 0;j<8;j++)
{
pDC->SetPixel(a[j]+100,420-b[j],RGB(0,255,0));
pDC->MoveTo(a[j]+100,420-b[j]);
pDC->LineTo(a[j+1]+100,420-b[j+1]);
}
pDC->TextOut(650,450,"X-AXIS");
pDC->TextOut(45,25,"Y-AXIS");
}
|
|
|
|
|