|
Mr.Prakash wrote:
lauren said its a static function, which is wrong
In C++ it's not.
Mr.Prakash wrote:
lauren said what is callback function, that is correct.
What do you mean?
Your English is almost impossible to understand sometimes.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
thanks,Would you give me CALLBACK example.
human
|
|
|
|
|
A CALLBACK function is a function in your code that Windows calls to tell you about an event or an item of interest.
Here is an example. The Windows API function EnumWindows enumerates the top-level windows. You pass it a pointer to a CALLBACK function. Windows calls that function once for each top-level window:
BOOL CALLBACK MyFunction(HWND hwnd,LPARAM lParam)
{
return TRUE;
}
EnumWindows(MyFunction,0); The function MyFunction is a callback function. When you call EnumWindows , Windows will call MyFunction for each top-level window in the system.
Software Zen: delete this;
|
|
|
|
|
thanks Gary R. Wheeler
human
|
|
|
|
|
i have just created a MDI application using CFormView. I have created 3 user interfaces - let's say Form A,B,and C. in form A i created a push button. i want to call form b by clicking form A's push button. and i want to call form C by clicking form B's push button. so how do i do it? plz i need the answer as fast as i can. i doing my final project using VC++.
NIMRODEL
|
|
|
|
|
Basically, in the class hiearchy, you have the main frame window. This owns the toolbar, the menu, and the child frame windows. Each child frame owns it's form view. So, if you need to issue a command that affects a form in the frames, you first need to obtain a pointer into the target view's class. Then use standard dialog commands to issue commands.
In order for this to work, you need pointers to the child frame windows. If you don't have them, you can enumerate through the childs of the main frame window by using GetTopWindow , then running a series of GetNextWindow calls along with a test to IsChild function. After you have all the pointers into the child frames, call GetActiveView through them to get the CView objects. Then cast down to CFormView, and voila, call the necessary functions.
You should also consider redesigning your application a bit if you don't have the pointers to the child windows. Enumerating through them is really troublesome. The easiest thing is to have pointers to the CFormView objects. You can always cast backwards or use GetParent to move back through the class hiearchy.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
well......i don't quite get it. b'coz i'm still new in this subject. i read somewhere that we can use OpenDocumentFile() func. if it's okay for u...can u include code sample for it.
NIMRODEL
|
|
|
|
|
I am trying to get this program to return a square-root value. The main function will call the Square_Root function that will use a do-while loop to calculated the SqRoot from the algorithm:
estimateSquareRoot = ((Number_Sent/estimateSquareRoot) +estimateSquareRoot)/2.0;
This statement will be placed in the loop that contunues to loop as long as
the square-root calculation is not within .00001 of the true value.
estimateSquareRoot*estimateSquareRoot-difference>=.00001
I can not get the loop to work. For example when I enter 9 it return 5, but
it should loop until it return the square-root of 3. If someone can point me
in the right direction please......Thank You
#include <iostream>
#include <math.h>
using namespace std;
double Square_Root (double); //declaring function returning double and passing a double
int main()
{
double Number_Enter, solution; //declaring two variables
cout<< "\n please enter a positive number."; //prompt
cin>>Number_Enter;
solution = Square_Root(Number_Enter);
cout<<"\n the square root of "<<number_enter<<"is" <<="" solution;
return="" 0;
="" }
=""
=""
double="" square_root(double="" number_sent)
{
="" double="" difference;
="" estimatesquareroot="1.0;
" do{
="" +="" estimatesquareroot)="" 2.0;
="" difference="estimateSquareRoot" *="" -="" number_sent;
="" }
while="" (estimatesquareroot*estimatesquareroot-difference="">=.00001);
return (estimateSquareRoot);
}
|
|
|
|
|
I don't know how the function was exiting with a value of 5.
Anyhoo, this line is causing the problem I think:
while (estimateSquareRoot*estimateSquareRoot-difference>=.00001);
Is always equal to the number sent in.
Change it to
while (difference >= .00001);
I'm assuming you know about the function sqrt()
Greba,
My lack of content on my home page should be entertaining.
|
|
|
|
|
You define difference as the current estimate squared minus the original square input by the user. The closer you get, the smaller the difference should be until it is less than the value .00001. In your while statement you are expecting the square of your estimated root minus the difference to get smaller. It won't converge.
For a start, change
while (estimateSquareRoot*estimateSquareRoot-difference>=.00001);
to
while(difference >= .00001);
Also, before you evaluate the difference, replace it by its absolute value. A difference of -.000009 satisfies the algorithm, but will not pass the test in the while statement.
Will Build Nuclear Missile For Food - No Target Too Small
|
|
|
|
|
Hi,
How can I draw the following 2D curve with MSChart?
double X[]= {21.4, 76.56, 32.56, 98.55};
double Y[]= {1.4, 16.56, 22.56, 18.35};
Thanks.
|
|
|
|
|
Hi
I've been trying to find a way to create a basic text editor which saves what you've entered in the text box into a text file. I encountered a few errors and problems though....
Firstly, for the user to specify the name of the file it must be of type string to be used in the file name (ofstream file(variable.c_str());). This won't work with CStrings. How could I go about converting a CString to a string?
Secondly, I try to add the "using namespace std;" statement, but no matter where on the page I add it, I still get about 4 errors....
Here's my Pages code:
<code>
#include <fstream>
#include "stdafx.h"
#include "PyreSoft Text Editor.h"
#include "PyreSoft Text EditorDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
CPyreSoftTextEditorDlg::CPyreSoftTextEditorDlg(CWnd* pParent )
: CDialog(CPyreSoftTextEditorDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CPyreSoftTextEditorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FILENAME, m_FileName);
DDX_Control(pDX, IDC_EDIT_BOX, m_TextBoxString);
}
BEGIN_MESSAGE_MAP(CPyreSoftTextEditorDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnSave)
END_MESSAGE_MAP()
BOOL CPyreSoftTextEditorDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
return TRUE;
}
void CPyreSoftTextEditorDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
void CPyreSoftTextEditorDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this);
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CPyreSoftTextEditorDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CPyreSoftTextEditorDlg::OnSave()
{
CString FileName;
CString MainText;
m_TextBoxString.GetWindowText( MainText );
m_FileName.GetWindowText( FileName );
CString JustChecking = FileName + ".txt";
}
</code>
|
|
|
|
|
|
Blue Pyre wrote:
#include "PyreSoft Text Editor.h"#include "PyreSoft Text EditorDlg.h"
first off
these lines are just begging for trouble
lose the spaces
"there is no spoon" biz stuff about me
|
|
|
|
|
Umm... where did you see that?
Theres no include files on the same line.
Does anyone know how I could cast the CString to a regular string?
Or how I could put the using namespace std somewhere without receiving an error?
Thanks.
|
|
|
|
|
CString objects can be casted down to LPCTSTR strings by using an (LPCTSTR) casting operator in front of the object name. You can't cast any lower than this, so if you need a stream of char -characters, you need to create the char -string manually from the LPCTSTR by using strcpy or similar.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Hello.
I am developing an FTP client. Some FTP servers request an identity server. I am not familiar with an Identity Server protocol.
Please post any information or link. Basically I need to know the protocol from beginning to end.
- connect to FTP server
- server wait for Identity response
...
// now what?
...
...
If I am not mistaken, the FTP client needs to create a socket, bind it to the identity port set by the user, and listen for an identity request from the FTP server.
Thanks,
Kuphryn
|
|
|
|
|
This may help.....
http://www.faqs.org/rfcs/rfc2228.html
Rob.
|
|
|
|
|
|
How do i send a simple print job (using c++) of any file on my PC to a printer (among a couple others) connected to my pc?
|
|
|
|
|
Have you looked at....
http://www.codeproject.com/printing/printing_wo_docview.asp?target=print%7Cmfc
and
http://www.codeproject.com/printing/printingmadeeasy.asp?target=print%7Cmfc
|
|
|
|
|
Hello; I'm using Visual C++ 6
1)I need a way to link 225 edit boxes as one group and give each one of them an index and call them individually by their indices instead of their IDs. after that i will take their inputs to fill up a matrix 15*15.
2)the above technique i have made to make a matrix 15*15 of user defined inputs. if anyone has another elegant technique which enables me to fill a matrix 15*15 with the user inputs , i'll be glad to hear from him.
i don't want to use the excel spread sheet active X control !!
thx
Eliyah
|
|
|
|
|
Hello;
1)I need a way to link 225 edit boxes as one group and give each one of them an index and call them individually by their indices instead of their IDs. after that i will take their inputs to fill up a matrix 15*15.
2)the above technique i have made to make a matrix 15*15 of user defined inputs. if anyone has another elegant technique which enables me to fill a matrix 15*15 with the user inputs , i'll be glad to hear from him.
i don't want to use the excel spread sheet active X control !!
thx
Eliyah
|
|
|
|
|
Oriented wrote:
i don't want to use the excel spread sheet active X control !!
How about a grid control, then?
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Two possible approaches:
1) Make sure the IDs are in cosecutive order then access them like so
HWND hCtrl = GetDlgItem(ID_EDIT1+nIndex), or something like that.
2) Create an array containing the IDs of the controls then access them like so HWND hCtrl = GetDlgItem(idArray[nIndex]).
These are simple methods that do not require any external controls other than the edit boxes.
INTP
|
|
|
|