|
Doesn't sound good to me. If you need one form for the web, Win32 and other platforms, you'll need to adopt lowest common denominator approach - note that you can't place a control at (x, y) on the web page. There's something called positioning style sheets, but AFAIR it's not available on all browsers.
Ask your bosses if they really need one form for everything
Tomasz Sowinski -- http://www.shooltz.com ** If you're going to rape, pillage and burn, be sure to do things in that order. **
|
|
|
|
|
Tomasz Sowinski wrote:
If you need one form for the web, Win32 and other platforms, you'll need to adopt lowest common denominator approach
This is supposed to be some kind of platform independent form. The actual rendering of the form would vary between end interfaces.
All I know is I am in deep waters now...
Expect lots of GDI doubts from poor me
Nish
One Nish is trouble enough.
Imagine 16 of me, dancing wild...
:jig::jig::jig::jig:
:jig::jig::jig::jig:
:jig::jig::jig::jig:
:jig::jig::jig::jig:
|
|
|
|
|
I have a class CField with a public function Paint() and I derive a class from it called CMyField. I then create a CMyField m_Field private (or public) object in another class and get this error:
error C2248: 'Paint' : cannot access public member declared in class 'CField'
Any ideas?
Thanks,
Jack
|
|
|
|
|
Can you show us your class definition line for CMyField?
Nish
Chris,
Can I have a Johnny Bravo icon please?
Please, please, please........
|
|
|
|
|
The CField class:
class CField {
public:
CField();
virtual ~CField();
void Paint();
...
};
The CMyField class:
class CMyField : CField {
public:
CMyField();
...
};
|
|
|
|
|
The CMyField class should be declared thus :-
class CMyField : public CField {
public:
CMyField();
...
};
Notice how I have added "public"
Nish
Chris,
Can I have a Johnny Bravo icon please?
Please, please, please........
|
|
|
|
|
Nish,
You are the man. Seriously, I see you answer billions of questions here and this isn't the first time you have helped me. Thanks a ton, you are a gentleman and a scholar.
-Jack
|
|
|
|
|
Hi,
I have an edit control, for which i had done some validation calculations when the edit control receives EN_KILLFOCUS.But after entering some value if the user doesn't click anywhere,then i would like to validate the entry.My problem is, it never recives EN_KILLFOCUS until i click on anyother control.
Any idea?
Neha
|
|
|
|
|
in our app we disable the 'ok' button until all controls like you are describing have lost focus ... we also tell the clients that they must tab out of the box to get the calc to work ... another solution is to put a 'calc' button next to the box that does nothing but when they click it you get the 'lost focus' message and it all happens
heh
---
"all's fair in love and war but in love there is no geneva convention"
|
|
|
|
|
Then perhaps you could use EN_CHANGE instead
Nish
Chris,
Can I have a Johnny Bravo icon please?
Please, please, please........
|
|
|
|
|
I have lot of calculations to be done ,also i need to update so many controls.If i write that in EN_SELCHAGE(),User might feel uncomfortable.anyway i had found a solution for my problem.Thanks for the reply.
Neha
|
|
|
|
|
Hi,
I think you have sound to solve my problem.
i.e I want to disable my sound card port. so that i can
avoid if any application using my sound card.
either i close the port or in some other way.
i want to enable/disable port programmatically.
Please help me regarding this.
I need very urgently.
Thanks in advance.
regards
Halid
|
|
|
|
|
I wrote i program like this
in view's OnMouseMove function:
CView::OnMouseMove()
{
Bitmap bmp(ptTo.X, ptTo.Y);
Graphics *graphics = Graphics::FromImage(&bmp);
//then do something with the graphics
.....
//at last i did not write: delete graphics;(but the example of ms offer did not do it also)
}
then this program take tens memory and increasing.
but when i quit the program,all of the memory is released.
So can i say gdi+ has an auto memory manager like java8)
welcome discuss!
i am realfly8)
|
|
|
|
|
If you create a pointer, you need to delete it. Always.
Of course the memory is freed, you're ending the process that owns it still, even if you've lost track of it my throwing the pointer away.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
what you mean? If i do not do the "delete p" myself,
who will delete it? windows? or gdi+? if it's true, why there is because of memory leak that has to restart computer?
i am realfly8)
|
|
|
|
|
realfly wrote:
what you mean? If i do not do the "delete p" myself,
who will delete it? windows? or gdi+? if it's true, why there is because of memory leak that has to restart computer?
Windows will delete it when your program is closed, because your program still owns the memory, it has leaked in that you don't know where it is in order to delete it.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
I wrote i program as:
char *p = new char[100000]
and didn't delete it when quit!
but the memory still comes back!8)
That's a wonderful charaterist of windows!
but I have a little doubt that when I'm using the computer,
why my memory will be used more and more?
ps:the memory release is apply to resource handle(HDC,HWND .etc)?
Thank you in advance!
i am realfly8)
|
|
|
|
|
Well if you have a program that is supposed to be run for over 3 hours at a stretch, perhaps even for a couple of days, you'd want to avoid memory leaks.
Nish
Chris,
Can I have a Johnny Bravo icon please?
Please, please, please........
|
|
|
|
|
Hi,I'm doing a conferencing application.I've capture voice using Microphone and try to playback live using DirectSound.But why i heard broking sound at the end of the voice??I've create a secondary buffer large enough to hold the entire sound..can anyone help me please!!
|
|
|
|
|
I need to allocate a very large array of memory. My computer is installed with 620MB of RAM. When I use calloc to allocate more than 256MB of memory, the calloc always return NULL. Is there any way to break this 256MB barrier with calloc?
|
|
|
|
|
Use ::VirtualAlloc()/ VirtualFree() instead.
Nguyen Binh.
|
|
|
|
|
It works Thanks!
|
|
|
|
|
It works Thanks!
|
|
|
|
|
Hi,
heres the main code for my Dialog Box called EPGAnalysis:
It has 3 edit boxes (IDC_EDIT1,2 and 3).
I want to include the calculation below the code and the three calucation variables should be displayed on the edit boxes:
The code is:
// EpgAnalysis.cpp : implementation file
//
#include "stdafx.h"
#include "Snors.h"
#include "EpgAnalysis.h"
#include <iostream.h>
#include <iomanip.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEpgAnalysis dialog
CEpgAnalysis::CEpgAnalysis(CWnd* pParent /*=NULL*/)
: CDialog(CEpgAnalysis::IDD, pParent)
{
//{{AFX_DATA_INIT(CEpgAnalysis)
m_edit1 = 0.0f;
m_edit2 = 0.0f;
m_edit3 = 0.0f;
//}}AFX_DATA_INIT
}
void CEpgAnalysis::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEpgAnalysis)
DDX_Text(pDX, IDC_EDIT1, m_edit1);
DDX_Text(pDX, IDC_EDIT2, m_edit2);
DDX_Text(pDX, IDC_EDIT3, m_edit3);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEpgAnalysis, CDialog)
//{{AFX_MSG_MAP(CEpgAnalysis)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEpgAnalysis message handlers
What I want to do is add this code which calculates the percentages:
////////Calculation//////////////
/////////////////////////////////
int main()
{
// initialise and increment the counter for the Alveolar Region
// declare the float variable to store a decimal percentage for the Alveolar Region
float Alveolarpercentage;
// declare an array to store the values of the 14 squares in the alveolar region and
// increment the counter for each active box detected.
// 1 signifies an active box, 0 signifies an inactive box
// the first 6 values represent the first line of the Alveolar region and the next
// 8 represent the second line of the Alveolar Region
int electrodeA[]= {1,1,1,1,0,1,1,0,0,0,0,0,0,1};
int Alveolarcount=0;
for (int a=0; a<14; a++){
//increment the count if an active box is detected
if (electrodeA[a] == 1){
Alveolarcount++;
}
}
// initialise the and increment the counter for the Velar Region
// declare the float variable to store a decimal percentage for the Velar Region
float Velarpercentage;
// declare an array to store the values of the 24 squares in the Velar region and
// increment the counter for each active box detected.
// 1 signifies an active box, 0 signifies an inactive box
// the first 8 values represent the first line of the Velar region, the next
// 8 represent the second and the last 8 represent the third line.
int electrodeV[]= {1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1};
int Velarcount=0;
for (int v=0; v<24; v++){
// increment the count if an active box is detected
if (electrodeV[v] == 1){
Velarcount++;
}
}
// initialise the and increment the counter for the Palatal Region
//declare the float variable to store a decimal percentage for the Palatal region
float Palatalpercentage;
// declare an array to store the values of the 24 squares in the Palatal region and
// increment the counter for each active box detected.
// 1 signifies an active box, 0 signifies an inactive box
// the first 8 values represent the first line of the Palatal region, the next
// 8 represent the second and the last 8 represent the third line.
int electrodeP[]= {1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1};
int Palatalcount=0;
for (int p=0; p<24; p++){
// increment the count if an active box is detected
if (electrodeP[p] == 1){
Palatalcount++;
}
}
// calculate and display the percentage contact for each region
//The Alveolar Percentage Contact
Alveolarpercentage = static_cast < float > (Alveolarcount) / 14 * 100;
//cout << "Alveolar Percentage Contact = "<<setprecision(2)
<<="" setiosflags(="" ios::fixed="" |ios::showpoint="" )
="" alveolarpercentage="" <<"%"="" <<endl;
="" the="" velar="" percentage="" contact
velarpercentage="static_cast" <="" float=""> (Velarcount) / 24 * 100;
//cout << "Velar Percentage Contact = "<<setprecision(2)
<<="" setiosflags(="" ios::fixed="" |ios::showpoint="" )
="" velarpercentage="" <<"%"="" <<endl;
="" the="" alveolar="" percentage="" contact
palatalpercentage="static_cast" <="" float=""> (Palatalcount) / 24 * 100;
//cout << "Palatal Percentage Contact = "<
|
|
|
|
|
in the dialog box put 3 cedit controls for the edit boxes
put a calc button on the dialog box
when they click it check for valid values and do the calc
or...
you could catch the 'lose focus' event of the boxes and do the validation and calcs as they do stuff
hope this helps
---
"all's fair in love and war but in love there is no geneva convention"
|
|
|
|
|